Smalltalk の変更点 luckey!!!! - memo random

#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
|<|未満|
|<=|以下|
|&#x3e;|超過|
|>=|以上|
|=|等しい|
|&#x7e;=|等しくない|
|==|同一オブジェクト|
|&#x7e;&#x7e;|同一オブジェクトではない|
|&|AND|
|&#x7c;|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でないかどうか"
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS