ios - org - xcode for linux



كيفية إعلان إنومز العودية مع سويفت 2.0 (1)

وفقا لملاحظات الإصدار ، تم إضافة دعم لهذا في كسكودي 7 بيتا 4، الذي ينص على:

ويمكن وضع علامات على غير مباشر للحالات والحالات، مما يتسبب في أن تكون القيمة المصاحبة لتخزين المخزن غير مباشرة، مما يسمح بتحديد هياكل البيانات العودية.

تعمل التعليمات البرمجية التالية في ملعب:

enum Tree {
    case Empty
    indirect case Node(value: Int, left: Tree, right: Tree)
}

let tree1 = Tree.Node(value: 0, left: Tree.Empty, right: Tree.Empty)
let tree2 = Tree.Node(value: 0, left: Tree.Node(value: -1, Tree.Empty, Tree.Empty), right: Tree.Empty)

القصة، في محاولة لاستخدام الإينوم مع switch عملت بشكل جيد، ولكن باستخدام سويفت 2 بناء جملة جديدة if case تحطمت مرارا وتكرارا كسكودي وجعل ملعب غير صالحة للاستعمال. أنا لست متأكدا إذا كان هذا يرتبط على وجه التحديد إلى إنومز أو مجرد عدم الاستقرار بيتا العام.

خلفية:

في الوقت الذي طلب هذا السؤال أصلا وقبلت هذه الإجابة، كان كسكودي beta1 الإصدار الأخير. لم يدعم هكود 7 beta1-beta3 هذا وقد تضمنت ملاحظات الإفراج عنه ما يلي:

العناصر غير المباشرة "إنوم لم تنفذ بعد حتى الآن في هذا بيتا، وسوف تضاف في تحديث لاحق.

أنا أحاول تجربة مع العودية العودية في سويفت 2 ولكن أنا الحصول على أخطاء تجميع.

بدأت في محاولة لتحديد مثالي الخاص:

enum Tree {
    case Empty
    indirect case Node(value: Int, left: Tree, right: Tree)
}

ولكن الحصول على خطأ: "يجب فصل الإعلانات المتتالية على خط:".

لذلك، حاولت المثال أبل الخاصة من WWDC15 ما الجديد في العرض سويفت :

enum Tree<T> {
  case Leaf(T)
  indirect case Node(Tree, Tree) 
}

ولكن في نفس الخطأ تجميع مع هذا أيضا. إذا قمت بإنشاء ملعب جديد ولصق هذه الخطوط في ثم أنه يؤدي إلى الخطأ - انظر قطة، أو إذا كان في نفس المشروع كسكودي الشيء، انظر لقطة أخرى.

أنا باستخدام كسكودي 7.0.

كيف لا أستطيع حتى الحصول على مثال أبل لتجميع؟





swift2