Smalltalk luckey!!!! - memo random

Smalltalk

参照[https://ja.wikipedia.org/wiki/Smalltalk]

基本文法

  • 宣言
    1. | tmp |"変数宣言"
    2. tmp := 1. "数値型の定義"
    3. tmp := 'moji'. "文字型の定義"
    4. tmp := true. "boolean型の定義"
    5. tmp := Date Today. "日付型の定義"
    6. tmp := Timestamp now. "時間型の定義"
    7. tmp := Array with:1 with:2 with:3."Array型の定義"
    8. tmp := List new add:1. "List 型の定義" 
    9. tmp := nil. "UndefinedObject型の定義"
    10. ^tmp. "返却値"
  • 計算符号
    計算符号
    +加算
    -減算
    *乗算
    **累乗
    \除算
    //整数除算
    ¥¥余り
  • 論理式
    論理式
    <未満
    <=以下
    >超過
    >=以上
    =等しい
    ~=等しくない
    ==同一オブジェクト
    ~~同一オブジェクトではない
    &AND
    |OR
  • if文
    1. int > 0 "条件"
    2. ifTrue:[ n = 1 ] ""
    3. ifFalse:[ n = 0 ].""
  • for文
    1. | sum |
    2. sum := 0.
    3. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ"

特殊構文

  • ブロック文
    1. | block sum |
    2. block := [
    3. sum := 0.
    4. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ" 
    5. ].
    6. block value. "ブロック内実行(sumの合計値産出)"
  • 一時停止
    1. | block sum |
    2. block := [
    3. sum := 0.
    4. 1 to: 10 do:[:each | sum := sum + each]. "1から10までループ" 
    5. ].
    6. self halt. "一時停止(デバック等に使用)"
    7. block value. "ブロック内実行(sumの合計値産出)"
  • 差分リスト
    1. | tmp  subEvenArray subOddArray subDetect |    
    2. tmp := Array with:1 with:2 with:3 with:4. "配列"
    3. subEvenArray := tmp select:[:each| each even ]. "差分リスト(偶数)"
    4. subOddArray:= tmp select:[:each| each odd ]. "差分リスト(奇数)"
    5. subDetect:= tmp detect:[:each| each = 5 ]ifNone:[9] . "検出1行目取得。ない場合は9を返却"
  • 特殊if文
    1. | tmp  |  
    2. tmp ifNil:[^nil] "nilかどうか"
    3. ifNotNil:[^tmp] "nilでないかどうか"
    4. tmp isNil ifTrue:[^nil]. "nilかどうか"
    5. tmp notNil ifTrue:[^tmp]. "nilでないかどうか"

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-26 (水) 00:43:05 (2558d)