#author("2017-04-26T00:29:47+09:00","","") #author("2017-04-26T00:43:05+09:00","","") * ''Smalltalk'' [#x1d05342] #contents 参照[https://ja.wikipedia.org/wiki/Smalltalk] * 基本文法 [#k21cc076] - 宣言 #highlighter(perl,number){{ | tmp |"変数宣言" tmp := 1. "数値型の定義" tmp := 'moji'. "文字型の定義" tmp := true. "boolean型の定義" tmp := Date Today. "日付型の定義" tmp := Timestamp now. "時間型の定義" tmp := Array with:1 with:2 with:3."Array型の定義" tmp := List new add:1. "List 型の定義" tmp := nil. "UndefinedObject型の定義" ^tmp. "返却値" }} - 計算符号 |>|CENTER:100|c |>|計算符号|h |+|加算| |-|減算| |*|乗算| |**|累乗| |\|除算| |//|整数除算| |¥¥|余り| - 論理式 |>|CENTER:200|c |>|論理式|h |<|未満| |<=|以下| |>|超過| |>=|以上| |=|等しい| |~=|等しくない| |==|同一オブジェクト| |~~|同一オブジェクトではない| |&|AND| |||OR| - if文 #highlighter(perl,number){{ int > 0 "条件" ifTrue:[ n = 1 ] "真" ifFalse:[ n = 0 ]."偽" }} - for文 #highlighter(perl,number){{ | sum | sum := 0. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ" }} * 特殊構文 [#p041dcf2] - ブロック文 #highlighter(perl,number){{ | block sum | block := [ sum := 0. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ" ]. block value. "ブロック内実行(sumの合計値産出)" }} - 一時停止 #highlighter(perl,number){{ | block sum | block := [ sum := 0. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ" ]. self halt. "一時停止(デバック等に使用)" block value. "ブロック内実行(sumの合計値産出)" }} - 差分リスト #highlighter(perl,number){{ | tmp subEvenArray subOddArray subDetect | tmp := Array with:1 with:2 with:3 with:4. "配列" subEvenArray := tmp select:[:each| each even ]. "差分リスト(偶数)" subOddArray:= tmp select:[:each| each odd ]. "差分リスト(奇数)" subDetect:= tmp detect:[:each| each = 5 ]ifNone:[9] . "検出1行目取得。ない場合は9を返却" }} - 特殊if文 #highlighter(perl,number){{ | tmp | tmp ifNil:[^nil] "nilかどうか" ifNotNil:[^tmp] "nilでないかどうか" tmp isNil ifTrue:[^nil]. "nilかどうか" tmp notNil ifTrue:[^tmp]. "nilでないかどうか" }}