トップ «前の日記(2018-02-28(Wed)) 最新 次の日記(2018-03-05(Mon))» 編集

K2さんの雑記


2018-03-01(Thu) [長年日記]

Pythonの関数返り値定義

Pythonも並列で進めている。案の定こんがらがってきてます(笑)

Pythonの関数は、返り値があるものについて、関数定義ヘッダ行には何も書かず、本体の中でreturnで値を返すかだけで決まるらしい。

これって、関数ヘッダを見ても、関数の仕様がわからないことになるので、ソースの可読性に問題はないのだろうか。

また関数本体で、分岐でreturnが複数ある場合、返す値の型がそれぞれ違った場合はどうなるのだろうか。

2点ともきっとナイスなアイデアで解決されているのだと思うが、今の時点ではちょっと疑問。

Swiftの関数返り値定義

Swiftの場合は、関数返り値は、関数ヘッダの後に 「->」を追加して型指定するのだが、この「->」って、なんか違和感。この文字自体に意味づけがないので、なんか言語仕様として美しさに欠ける感じがしています。

どうして他の言語ではあまり採用されていないフォーマットを使っているのか、よくわからず、ちょっといやな感じがしています。

Xcodeでのオブジェクトとコードの接続

例えばstoryboard(画面設計するペイン)で、キャンバスの上にテキストフィールドを置いても、どうやらその部品に名前はつかないようだ。

これを、ViewController.swiftというコードが書かれたファイルに関連づける時(クラスのプロパティとしてテキストフィールドオブジェクトをコードに追加する)、初めて名前をつけるようだ。

これで、クラスのコード中で、この部品にアクセスできるようになる。

このクラスのオブジェクトに関連づけられたプロパティのコードをOutletと呼ぶらしい。

@IBOutlet weak var nameTextField: UITextField!

こんな行がViewControllerのクラスに追加される。この行中の単語ひとつひとつがまた難しい……

イベントハンドラ

Xcodeではイベントハンドラという言葉は使われていないようだ。アクションメソッドというのが正しいか。

   @IBAction func setDefaultLabelText(_ sender: UIButton) {

こんな行で始まる。中括弧内にコードを書く。

ボタンに対するアクションメソッドは、ボタンからControlキーを押しながらViewControllerコード内にボタンをドラッグすれば簡単に作れる。

テキストフィールドに対するアクションメソッドはそう簡単にはいかない。

まず、ViewControllerを、UITextFieldDelegateからも継承させなければならない。これは手作業で行う。

class ViewController: UIViewController, UITextFieldDelegate {

その後、ViewControllerのviewDidLoad()メソッド内で、テキストフィールドのdelegateプロパティに、自分をつっこむ。

   override func viewDidLoad() {
       super.viewDidLoad()
       // Handle the text field's user input through deletate callbacks.
       nameTextField.delegate = self
   }

これで、テキストフィールドのアクションメソッドが、ViewControllerの中に定義できるようになったので、手書きでアクションメソッドを挿入する。

func textFieldShouldReturn(_ textField: UITextField) -> Bool {

}

ここまでやらないといけない。これをスパルタンと言わずしてなんと言おう(笑)。

こうやって手書きで関連づけないと、テキストフィールドのイベントがViewControllerに通知されない。こうやって解説を二度読んで、誰にも読まれないであろうこの日記を書いて、やっとなんとなく理解できてきた。

もうちょっと簡単にイベントハンドラを作成できるようにしてもよかったのではないか?>apple。

慣れないCapsキー

どうしても、CapsキーをCommandキーと間違えて押してしまう。仕事で使用しているLet's NoteのControllキーがちょうどその位置にあるので、コピーペーストなどの時に小指でそのキーを押してしまう。同じようにMacBookでも小指でCapsを押しながら、Cだのアンドゥのzなどを押してしまう。

このCapsキー、標準の環境設定で、他のキーの機能に変更できるらしい。さっそくCommandキーに変更してみました。

だいぶ使いやすくなりそうな気がします。


1965|09|
2002|09|10|11|12|
2003|01|02|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|03|04|05|08|
2014|01|02|03|04|05|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|11|
2017|01|03|05|06|07|08|10|11|12|
2018|01|02|03|04|05|08|09|10|12|
2020|01|07|




2018年
3月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
/ / /
最近の日記