First NIT release and new clean mercurial repository
[nit.git] / tests / example_string.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2004-2008 Jean Privat <jean@pryen.org>
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 # A procedural program (without explicit class).
18 # It displays the value of a local variable.
19 # It exhibs ways to concatenate strings.
20
21 var a = 10
22 # First way: Multiple parameters.
23 # Pro: Simple.
24 # Con: Only for multi parameters methods.
25 printn("The value of a is: ", a, ".\n")
26
27 # Second way: Build a string and display it.
28 # Pro: Eiffel way (rigourous).
29 # Con: Eiffel way (heavy).
30 var s = "The value of a is: "
31 s.append(a.to_s)
32 s.append(".\n")
33 printn(s)
34
35 # Third way: Use a intern string evaluation.
36 # Pro: Script way (easy).
37 # Con: Script way (unreadeable on complexes cases).
38 printn("The value of a is: {a}.\n")
39
40 # Fourth way: String concatenation
41 # Pro: Easy.
42 # Con: Unefficient (slow and consumes memory).
43 printn("The value of a is: " + a.to_s + ".\n")
44
45 # Fiveth way: Join arrays.
46 # Pro: Sometime efficient on complex concatenation.
47 # Con: Crazy.
48 printn(["The value of a is: ", a.to_s, ".\n"].join(""))