명령줄로부터 이름을 입력받자. 명령줄에 아무것도 명시되지 않은 경우를 설명해야한다. 우리에게 Ceylon 에서 어떻게 null
값이 처리되는지 탐구할 수 있는 기회를 준 것이다. 아마도 Java 나 C# 에서 사용되는 것과 꽤 다를 것이다.
여기 지나치게 장황한 예제를 살펴보자.
1 2 3 4 5 6 7 8 9 10 11 12
| "Print a personalized greeting" void hello() { String? name = process.arguments.first; String greeting; if (exists name) { greeting = "Hello, ``name``!"; } else { greeting = "Hello, World!"; } print(greeting); }
|
String?
타입은 name
이 null
값을 가질 수 있다는 것을 가리킨다. 그러면 이름이 ‘null’ 이 아닌 경우로부터 이름이 null
인 경우를 분리하기 위해 if (exists ...)
제어 구문을 사용한다.
아래처럼 if (exist ...)
제어 구문안에 지역 변수 name
을 선언하여 코드를 축약하는 것은 가능하다.
1 2 3 4 5 6 7 8 9
| String greeting; if (exists name = process.arguments.first) { greeting = "Hello, ``name``!"; } else { greeting = "Hello, World!"; } print(greeting);
|
if (exist ...)
구문 밖에서 유용하게 name
을 실제로 사용할 수 없기 때문에, 이 것은 대부분 경우에 선호되는 스타일이다. (그러나 이렇게해도 코드 작성하는 것은 거의 줄어들지 않는다.)