万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Boo Language Advent Calendar 2012 8日目 Title:「クラスのJSONっぽい便利な使い方」

    URL: http://atnd.org/events/34622
    上記本のC#とBooの比較が、中国語サイトに載せられてます。誤りも微妙に修正されていました。しかし読みにくい。
    URL: http://www.cnblogs.com/2018/archive/2012/10/10/2623630.html

    その中の興味深い例を紹介します。

    C#

    var emp = new Employee{ Name = "foo", Id = 15};
    

    ・Boo

    emp = Employee(Name: "foo", Id: 15)
    

    まず、employeeって単語の紹介。
    :研究社の和英辞典より引用

    employee
    音節em・ploy・ee 発音記号/ɪmpl`ɔɪ〓ː, em‐, ‐plˈɔɪiː/
    【名詞】【可算名詞】
    被雇用者,従業員 (⇔employer).

    今回。この準備のために、こんなクラスを準備します。
    C#で書きましたが、以下のようになります。
    GameObjectに特に貼り付けたりしないので、MonoBehaviorは"継承していません"。

    public class Employee
    {
        public string Name { get; set; }
        public int Id { get; set; }
    }
    

    こうすれば、呼べます。
    ※「Plugins」ディレクトリを作って入れて下さい。
    → さもないとBooから後々呼べません。(これ自体Booで書いてもOK)

    C#ではこう書きました。
    ・EmployeeTestCS.cs(C#)

    using UnityEngine;
    
    public class EmployeeTestCS : MonoBehaviour
    {
        void Awake ()
        {
            var emp = new Employee{ Name = "foo", Id = 15};
            Debug.Log (emp.Name);
            Debug.Log (emp.Id);
        }
    }
    

    →結果
    foo
    15

    ・EmployeeTestBoo.boo(Boo)
    → Booではこうです。

    import UnityEngine
    
    class EmployeeTestBoo (MonoBehaviour):
    
        def Awake ():
            emp = Employee(Name: "foo", Id: 15)
            Debug.Log(emp.Name)
            Debug.Log(emp.Id)
    

    JSONっぽい便利な使い方ってのは、
    Employee(Name: "foo", Id: 15)のように、「:」で変数と値をマッピングして「,」で区切っているだけってのを意味しました。