

fun main(args: Array<String>) {
    println("Hello, World!")
}

/*
kotlinc hello.kt -include-runtime -d hello.jar
java -jar hello.jar

Compiling a library

If you're developing a library to be used by other Kotlin applications, you can produce the .jar file without including the Kotlin runtime into it.

   $ kotlinc hello.kt -d hello.jar
Since binaries compiled this way depend on the Kotlin runtime you should make sure the latter is present in the classpath whenever your compiled library is used.

You can also use the kotlin script to run binaries produced by the Kotlin compiler:

   $ kotlin -classpath hello.jar HelloKt
HelloKt is the main class name that the Kotlin compiler generates for the file named hello.kt.

#1 Basic Types

In Kotlin, everything is an object in the sense that we can call member functions and properties on any variable

Some types are built-in, because their implementation is optimized, but to the user they look like ordinary classes

numbers, characters, booleans and arrays

no implicit widening conversions for numbers, and literals are slightly different in some cases

Type	Bit width
Double	64
Float	32
Long	64
Int	32
Short	16
Byte	8

characters are not numbers in Kotlin

integral values:
Decimals: 123
Longs are tagged by a capital L: 123L
Hexadecimals: 0x0F
Binaries: 0b00001011
!!! Octal literals are not supported.

Doubles by default: 123.5, 123.5e10
Floats are tagged by f or F: 123.5f

On the Java platform, numbers are physically stored as JVM primitive types, unless we need a nullable number reference (e.g. Int?) or generics are involved. In the latter cases numbers are boxed.

Note that boxing of numbers does not preserve identity，Note that boxing of numbers does not preserve identity。

显式转换
Explicit Conversions
smaller types are NOT implicitly converted to bigger types. This means that we cannot assign a value of type Byte to an Int variable without an explicit conversion

fun decimalDigitValue():Int {
	
}

*/
