SqueakByExample:8.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 를 벗어나는 문자는 동일하지 않을 수 있다고 설명하는 것이죠.