func add(a: Int64, b: Int64): Int64 {
return a + b
}
main() {
println("hello world")
var a1 = 1
var b1 = 2
var c1 = add(a1, b1)
println(c1)
let arr = [0, 1, 2, 3, 4, 5]
for (i in arr) {
println("The element is ${i}")
}
arr[0] = 3
println("The first element is ${arr[0]}")
println("--------------------------------------")
// VArray<T, $N>(initElement: (Int64) -> T)
let vb = VArray<Int64, $5>({ i => i})
// [0, 1, 2, 3, 4]
// VArray<T, $N>(item!: T)
let vc = VArray<Int64, $5>(item: 0)
// [0, 0, 0, 0, 0]
var va: VArray<Int64, $3> = [1, 2, 3]
// 使用index遍历VArray
for (i in 0..va.size) {
println("The index is ${i}, the element is ${va[i]}")
}
println("--------------------------------------")
// Range<T>(start: T, end: T, step: Int64, hasStart: Bool, hasEnd: Bool, isClosed: Bool)
let r1 = Range<Int64>(0, 10, 1, true, true, true)
// r1 contains 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
let r2 = Range<Int64>(0, 10, 1, true, true, true)
// r2 contains 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
let r3 = Range<Int64>(10, 0, -2, true, true, false)
// r3 contains 10, 8, 6, 4, 2
for (i in r1) {
println("The element is ${i}")
}
println("--------------------------------------")
let n = 10
let r11 = 0..10 : 1 // r1 contains 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
let r21 = 0..=n : 1 // r2 contains 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
let r31 = n..0 : -2 // r3 contains 10, 8, 6, 4, 2
let r41 = 10..=0 : -2 // r4 contains 10, 8, 6, 4, 2, 0
let r5 = 0..10 // the step of r5 is 1, and it contains 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
//let r6 = 0..10 : 0
// Error, step cannot be 0
let r7 = 10..0 : 1 // r7 to r10 are empty ranges
let r8 = 0..10 : -1
let r9 = 10..=0 : 1
let r10 = 0..=10 : -1
println("--------------------------------------")
// 输出你好
let he: Rune = '\u{4f60}'
let llo: Rune = '\u{597d}'
print(he)
print(llo)
println("--------------------------------------")
let slash: Rune = '\\'
let newLine: Rune = '\n'
let tab: Rune = '\t'
println("*********************************************")
println("Hello${slash}World${newLine}nihao${tab}wo${tab}de${tab}hao")
println("*********************************************")
let s1: String = ""
// let s2 = 'Hello Cangjie Lang'
let s3 = "\"Hello Cangjie Lang\""
// let s4 = 'Hello Cangjie Lang\n'
let s11: String = """
Hello,
Cangjie Lang
"""
/*
let s21 = '''
Hello,
Cangjie Lang'''
*/
let s12: String = #""#
// let s22 = ##'\n'##
let s32 = ###"
Hello,
Cangjie
Lang"###
/*
//mismatched types expected 'UInt8', found 'Struct-String'
var bt: Byte = "0"
print(bt)
bt = "1"
print(bt)
var ru: Rune = "0"
print(ru)
ru = "1"
print(ru)
*/
println("--------------------------------------")
let fruit = "apples"
let count = 10
let s = "There are ${count * count} ${fruit}"
println(s)
let r = 2.4
let area = "The area of a circle with radius ${r} is ${let PI = 3.141592; PI * r * r}"
println(area)
println("--------------------------------------")
let x: (Int64, Float64) = (3, 3.141592)
let y: (Int64, Float64, String) = (3, 3.141592, "PI")
println("${x[0]}, ${x[1]}")
println("${y[0]}, ${y[1]}, ${y[2]}")
println("--------------------------------------")
var a: Int64
var b: String
var c: Unit
var f = { => ((1, "abc"), ())}
((a, b), c) = f() // value of a is 1, value of b is "abc", value of c is '()'
((a, b), _) = ((2, "def"), 3.0) // value of a is 2, value of b is "def", 3.0 is ignored
println("-----------------------------------------")
func getFruitPrice (): (name: String, price: Int64) {
return ("banana", 10)
}
}