Go - Type Assertion


  • X.(T)  X is interface, T is concrete type.
  • When T is a concrete type, it assert dynamic type of X is identical to T. Result is the dynamic value with type of T
  • Left hand of type assertion must be an interface, otherwise panic
  • Panic if assert type fail
  • If T is an interface, it check is X satisfy T interface. Result is the type T
  • If two result are expected, type assertion will return boolean but not panic.
    w, ok := x.(T)
  • If result is false, result type will be nil


沒有留言:

張貼留言

別名演算法 Alias Method

 題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...