type-safety

    4熱度

    3回答

    trait Foo trait Bar extends Foo def doStuff[T <: Foo](x: T)(implicit ev: T =!:= Foo) = x doStuff(new Foo{}) //ambiguous implicit value doStuff(new Bar)// successful 隱分辨率是發生在編譯時存在的錯誤的唯一方法,所以在這

    3熱度

    1回答

    我有一個應用程序,所有的實體都有一個整數___ID主鍵(例如StudentID,CourseID等) 我想爲程序添加一些類型安全性,例如函數作爲輸入一個StudentID,不能意外傳遞一個CourseID。 是來到我的腦海裏第一個想法是創建一個這樣簡單的空類: public class StudentID extends java.util.Integer {} public class Cou

    38熱度

    2回答

    這是一個關於Swift編程風格的問題,具體是Int vs UInt。 Swift編程語言指南建議程序員使用通用帶符號整數類型Int,即使變量已知爲非負數。從the guide: 使用UINT只有當你特別需要具有相同大小的平臺的本地字大小的無符號整型。如果不是這種情況,即使要存儲的值已知爲非負數,Int也是首選。 Int一致地使用整數值有助於代碼互操作性,避免了在不同數字類型之間進行轉換的需要,並匹

    1熱度

    2回答

    目前我有一個宏來檢查一個值是一種類型。 #define CHECK_TYPE_INLINE(val, type) \ ((void)(((type)0) != (0 ? (val) : ((type)0)))) 這對於能夠在某些情況下鍵入檢查宏參數非常有用。 但是如果我要檢查多種類型呢?例如,檢查它是否是struct Foo *或struct Bar *。 例, static inl

    3熱度

    2回答

    多態結構在C中很常見,但通常涉及顯式的強制轉換,它允許意外拋出不兼容的結構。 struct ID { char name[32]; }; struct IntID { struct ID id_base; int value; } struct FloatID { struct ID id_base; float value; }

    0熱度

    2回答

    我最近開始在一個使用Java配置的地方使用Spring,而不是XML,到目前爲止我非常喜歡它。 我的問題是: 如果我們有一個導入另一個@Configuration註解類B中的@Configuration註解類A,什麼是在一個定義的bean正確的,類型安全的方式依賴於一個bean在B中定義 這是我在博客裏看到一個例子(https://blog.codecentric.de/en/2012/07/sp

    0熱度

    6回答

    給定一個列表[任何],我想將其轉換爲一個選項[列表[字符串] def convert(ls: List[Any]) : Option[List[String]] = { if (ls.forall(_.getClass == classOf[String])) Some(ls.map(_.asInstanceOf[String])) else None }

    11熱度

    1回答

    爲什麼asInstanceOf不拋出ClassCastException? scala> List("a").asInstanceOf[List[Int]] res34: List[Int] = List(a)

    1熱度

    1回答

    我用scala的pickle序列化玩了一下,所以我編寫了一個Netty Handler,但是當我嘗試使用scalac編譯文件時,由於類型不匹配而導致錯誤,我無法解釋我 import java.util import io.netty.buffer.ByteBuf import io.netty.channel.ChannelHandlerContext import io.netty.ha

    0熱度

    1回答

    我正在嘗試編寫一個函數,它接受任意類型的某種類型的內容或可以生成並返回任意類型的函數。要做到這一點,我必須能夠通常測試一個參數是否是一個函數,而不用測試它是否是返回類型X的函數。我該怎麼做?可能看起來像下面這樣: func Blah(arbitrary interface{}) { var value interface{} if function, ok := arbitr