SqueakByExample:8.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search

Character

Character 는 Magnitude 의 하위 클래스로서 Collections-String 에 정의되어 있습니다. 표시할 수 있는 문자는 $<char> 처럼 스퀵에서는 표현됩니다. 예를 들면 이렇게 말이죠:

$a < $b        true


인쇄-불가능한 문자는 다양한 클래스 메서드들을 통해서 발생됩니다. Character class>>value: 는 Unicode (또는 ASCII) 정수 값을 인수로서 사용하고 해당하는 문자를 반환합니다. accessing untyPeable character 프로토콜은 backspace, cr, escape, euro, space, tab 등과 같은 여러가지 편리한 생성자 메서드를 포함하고 있습니다.

Character space = (Character value: Character space asciiValue)        true


printOn: 메서드는 문자를 표현하는 세가지 방법중 어떤것이 가장 적합한지를 판단할 수 있을만큼 똑똑합니다.:

Character value: 1             Character value: 1
Character value: 32           Character space
Character value: 97           $a


isAlphaNumeric, isCharacter, isDigit, isLowercase, isVowel 와 같은 다양하고 편리한 testing 메서드가 내장되어 있습니다.

Character 를, 바로 그 문자를 포함한 문자열로 변환하시려면 asString 을 전송합니다. 이번 경우, asString 과 pringString 은 다른 결과를 보여줍니다:

$a asString          'a'
$a                        $a
$a printString       '$a'


모든 ASCII 문자는 클래스 변수 CharacterTable 에 저장된 고유한 인스턴스입니다:

(Character value: 97) == $a        true


하지만 0 에서 255 범위 밖의 character 들은 고유하지 않습니다. 아래와같이 말이죠[1]:

Character characterTable size                                       256    
(Character value: 500) == (Character value: 500)        false

Notes

  1. 예제중 두번째것을 보면 당연히 같은 500값에 해당하므로 비교시 true 가 출력되어야 하나 false 가 출력되고 있습니다. 그래서 ASCII 를 벗어나는 문자는 동일하지 않을 수 있다고 설명하는 것이죠.