-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBasicTypes.kt
100 lines (81 loc) · 3.08 KB
/
BasicTypes.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import java.lang.Double.NaN
// https://kotlinlang.org/docs/reference/basic-types.html
class BasicTypes {
// literal constants: make numbers more readable
private val oneMillion = 1_000_000
private val creditCardNumbers = 1234_5678_9012_3456
fun test() {
println("Literal constants: make numbers more readable")
println(oneMillion)
println(creditCardNumbers)
println("")
println("Structural equality(==) vs referential equality(===)")
val a: Int = 10000
val boxedA: Int? = a
val anotherBoxedA: Int? = a
println(boxedA === a)
println(boxedA === anotherBoxedA)
println("")
println("Bitwise operations")
val number272 = 0x00110
println("0x00110 & 0x00001 = " + (number272 and 0x00001 == 0x00000))
println("0x00110 & 0x00010 = " + (number272 and 0x00010 == 0x00010))
println("0x00110 | 0x00001 = " + (number272 or 0x00001 == 0x00111))
println("0x00110 | 0x00010 = " + (number272 or 0x00010 == 0x00110))
println("0x00110 ^ 0x00001 = " + (number272 xor 0x00001 == 0x00111))
println("0x00110 ^ 0x00010 = " + (number272 xor 0x00010 == 0x00100))
println("")
println("Numbers comparison")
println("NaN == NaN ? " + (NaN == NaN))
println("-0.0 < 0.0 ? " + (-0.0 < 0.0))
println("NaN is greater than any other numbers ? " + (Int.MAX_VALUE < NaN))
println("")
println("Characters")
println("a\tb\bc\nd\re\'f\'\"g\"h\\i\$j\uFF00k")
val poem = "B7ut 1soo6n we2 mu0st ris3e"
fun filterNumbers(s: String): String {
var result = ""
val range = '0'..'9'
s.forEach {
if (it !in range) {
result += it
}
}
return result
}
println(filterNumbers(poem))
println("")
println("Strings")
val phoenixAndTurtle = """
>Truth may seem but cannot be;
>Beauty brag but ’tis not she;
>Truth and beauty buried be.
"""
println(phoenixAndTurtle)
println(phoenixAndTurtle.trimIndent())
println(phoenixAndTurtle.trimMargin(">")) // by default |
val bucks = 10
println("I bet \$ $bucks bucks")
val name = "John"
println("My name is $name, ${name.map { "\"${it.toUpperCase()}\"" }.joinToString()}")
println("My name is $name, ${name.map { "${it.toUpperCase()}" }.joinToString("-", "\"", "\"")}")
println("")
println("Array")
val square = Array(10, { i -> i * i })
print("square array = [")
square.forEachIndexed { index, i ->
print(i)
if (index != square.lastIndex)
print(", ")
}
println("]")
val numbers: IntArray = intArrayOf(1, 0, 4, 27, 39, -58)
print("number array = [")
numbers.forEachIndexed { index, i ->
print(i)
if (index != numbers.lastIndex)
print(", ")
}
println("]")
}
}