1
基本的に、Vector3という新しいデータ型を作成しています。Swift 3の初期値の取得
class Vector3 {
var x:Int
var y:Int
var z:Int
init(x:Int,y:Int,z:Int) {
self.x = x
self.y = y
self.z = z
}
}
カスタムデータ型で演算子を使用するために、Swiftの演算子オーバーロード機能を使用しました。クラス名のみで、初期値がなければ
Vector3
:
infix operator +
func +(left:Vector3,right:Vector3) -> Vector3 {
return (Vector3(x: left.x + right.x, y: left.y + right.y, z: left.z + right.z))
}
var customVector = Vector3(x: 1, y: 2, z: 3)
var secondVector = Vector3(x: 3, y: 2, z: 1)
print(customVector + secondVector) //Take note
現在のコンソールは次のように印刷されます。
しかし、私が欲しいのは、このようなものを印刷することである:
はVector3(x:4,y:4,z:4)
がうまくいけば、誰かがこれで私を助けることができます!ありがとう!
注:クラス名のみで、初期値なしVector3
:現在のコンソールは次のように印刷され
customVector.x //1
customVector.y //2
'Vector3'が本当に値型ではなく、参照型でなければなりません。ただそれを 'struct'にするだけで、あなたは自由に欲しい印刷物を手に入れることができます。 – Hamish
関連:http://stackoverflow.com/questions/24068506/how-can-i-change-the-textual-representation-displayed-for-a-type-in-swift、http://stackoverflow.com/questions/28885254/unwrapping-scnvector3-scnvector4-values-to-print –