2016-05-13 4 views
0

Javaのarraycopyの定義はここにある: Java arraycopySwiftでJava Arraycopyを実装する方法は?

私のJavaコードは以下の通りです:

public func getRawData() -> [UInt8] { 
    var raw = [UInt8(value.count + 4)] 
    raw[0] = UInt8(tag) 
    raw[1] = UInt8(tag>>8) 
    raw[2] = UInt8(len) 
    raw[3] = UInt8(len>>8) 
    // The place the put swift arraycopy 
    return raw 

} 

arraycopyへの同様の機能ではありません。

ここ
public byte[] getRawData() { 
    byte[] raw = new byte[value.length + 4]; 
    //little endian defined by fido spec 
    raw[0] = (byte) (tag); 
    raw[1] = (byte) (tag>>8); 
    raw[2] = (byte) (len); 
    raw[3] = (byte) (len>>8); 
    System.arraycopy(value, 0, raw, 4, value.length); 
    return raw; 
} 

は私スウィフトコードです迅速。どのようにしてこの関数を適切に再実装できますか?

答えて

4

あなたは、Javaのarraycopyと同じ結果を達成するためにスウィフトのsliceを使用することができます。

var src = [0, 1, 2, 3] 
var dst = [4, 5, 6, 7, 8, 9] 

dst[1...4] = src[0...3] 

print(dst) // [4, 0, 1, 2, 3, 9] 

注:これは、境界チェックを処理しません。

+0

ありがとう!!私はjavaでarraycopyを認識できないと思います。 – HungCLo

関連する問題