Использование точки '.' в Smalltalk - PullRequest
3 голосов
/ 07 января 2020

Что такое использование . в Smalltalk? Насколько я понимаю, это разделитель различных операторов, но его можно опустить, если оператор находится в конце. Это правильно?

1 Ответ

4 голосов
/ 07 января 2020

. - это разделитель операторов, такой как ; в Pascal (обычно используется в конце строк). Мотивация (причина) заключается в том, что обычные предложения в английском языке sh оканчиваются на ..

Места, которые необходимо / можно опустить:

  1. Переменная определение

  2. Комментарии

  3. Один блок операторов или последний оператор в блоке

  4. В конце метода

  5. Когда вы определяете #selector или #selector: message

Пример метода из Smalltalk / X-jv:

selectorAsRegistryName: aSelector
    "Splits selector into string words with spaces. 
     For example: itemName becomes 'Item Name'"
    | registryName selectorCollection | 

    registryName := String new.

    selectorCollection := aSelector asCollectionOfSubCollectionsSeparatedByAnyForWhich:[:ch | ch isUppercase ] withSeparatorsIncluded:true.             
    selectorCollection at: 1 put: selectorCollection copy first asUppercaseFirst. "/ first string must be uppercase too

    selectorCollection do: [ :eachString |
        registryName := registryName isEmpty ifTrue: [ eachString ]
                                            ifFalse: [ registryName, Character space, eachString ]   
    ].    

    ^ registryName       
...