私はSwiftを初めて習得し、この問題に遭遇しました。なぜfishy.depthに値を割り当てることができないのですか? スイフトで2つ以上のプロトコルを継承する
-1
A
答えて
0
これは、魚がlet定数であると言いますが、その値を変更できるように魚をvarとして設定する必要があります。
+0
ありがとうございました。 –
+0
U歓迎、あなたは答えを受け入れることができますか、tnx! –
0
インスタンスを持つことはできません。プロトコルは種類のようなものです。
struct Carp: Fish, UnderWater{
var fins: Int
var depth: Int
init(fins: Int) {
self.fins = fins
self.depth = 0
}
init(depth: Int) {
self.fins = 0
self.depth = depth
}
}
func surface<T: Fish & UnderWater>(t: inout T){
t.depth = 0
}
let carp = Carp(depth: 0)
surface(t: &carp)
この機能には、プロトコルではなく、Carpを送信できます。 struct、class、enumはインスタンス化できますが、プロトコルはインスタンス化できません。
関連する問題
- 1. C#2つ以上の派生クラスの下位継承チェーンをオーバーライドする
- 2. プロトコルの実装と継承
- 3. カスタム配列によるスイフト継承
- 4. プロトコルから継承するプロトコルにジェネリックパラメータを制限する
- 5. 継承と2つのインターフェイスタイプ
- 6. スイフト:プロトコルの利用可能性を確認する方法は?スウィフト2以来
- 7. スイフト2:@objcプロトコルと列挙アレイ
- 8. スイフトでプロトコルを使用する場合
- 9. 継承、ジェネリック、およびプロトコルは、スウィフト
- 10. デフォルト以外の継承
- 11. C# - 上級継承
- 12. スイフト。 UIKitのデリゲートパターンのプロトコル。 NSObjectProtocol
- 13. 継承継承について
- 14. スウィフト関連するタイプとプロトコルの継承
- 15. Symfony 2 + Doctrine 2 +継承
- 16. Silverlight 2で継承するスタイル
- 17. 2つのクラスから継承するオブジェクトメソッドを呼び出す
- 18. 2つ以上のシミュレーションをマージする
- 19. 2つ以上のリビジョンをマージする
- 20. Java継承 - 同じメソッドを使用する2つのクラス
- 21. 1つのクラスで2つのクラスのプロパティを継承する方法は?
- 22. スイフト:変数値がdidSetに継承されない
- 23. 2つの異なるサブクラスが同じエンティティインスタンスを継承するときのDoctrine継承戦略
- 24. C++クラスの継承継承に関する設計上の問題
- 25. ベースクラスの角2 - 継承プロバイダ
- 26. Doctrine 2 - クラステーブルの継承マッピングクラスの継承マッピングストラテジー
- 27. 継承したクラスを継承する
- 28. 継承する継承するインターフェイス
- 29. HTML5 2つ以上のインポート
- 30. QMLで2つ以上のリストビューをスクロール
*コード*を載せてください。スクリーンショットではありません。 –
関数のパラメータは*定数です。あなたの意図に応じて、1) 'inout'パラメータを使うか、* 2)プロトコルを* class protocol *として定義できます(例:http://stackoverflow.com/questions/33471858/ swift-protocol-weak-can-be-apply-to-non-class-type)を使用することができます。 –