Avatar
Avatar
Kishikawa Katsumi
letを使うケースで本当に定数の場合、っていうのはあると思いますけどどうでしょう。 public struct Header { public let protocolId: UInt32 = 0x424D53FE public let structureSize: UInt16 = 64 public var creditCharge: UInt16 ... } 上記のprotocolIdstructureSizeはこのHeaderというデータ(SMB2のパケットヘッダーです)では必ず固定の値です。 また、プロパティとしてこの値を持つこと自体は合理的だと思います。パケットの構造を示しているし、Debuggerでpoしたときに表示されるなどあるので。 という場合にこのプロパティをvarにすることはないと思います。他の値が入ることはないので。
若干話は逸れますが、これ、TypeScriptみたいにリテラル型があれば、 var であることと不正な値を代入されないことを両立できそうですね。Swiftは ExpressibleBy*Literal があるからリテラルの型が定まらなくてダメですが。