正直言って、swift3(obj-cから)への移植は難しいです。最も簡単ではあるが迅速な質問。swiftでのビット演算と算術演算
public func readByte() -> UInt8
{
// ...
}
public func readShortInteger() -> Int16
{
return (self.readByte() << 8) + self.readByte();
}
コンパイラからエラーメッセージが表示されます。「バイナリ演算子+は2つのUInt8オペランドに適用できません。
どうしたのですか?
ps。どのような恥;)
あなたは、ここに 'var'は必要ありません。 :)また、タイプ推論を別々に行うのではなく、単にタイプ推論に 'let highByte = self.readByte()'を使って作業させるのはもっと慣用的です。 –
@TimVermeulenああ!改善していただきありがとうございます! –
int8に署名する必要があります。実際のコード(CocoaAMF): ' - (int16_t)decodeShort { \t [self _ensureLength:2]; \t int8_t ch1 = m_bytes [m_position ++]; \t int8_t ch2 = m_bytes [m_position ++]; \t return(ch1 << 8)+ ch2; } ' – danilabagroff