package main
// 模块导入 import ( "fmt" "time" "math/cmplx" "math" )
// 类型写在变量后面 func add(x int, y int) int{ return x + y }
// 参数类型一样的话,可以只使用一个 func add2(x, y int) int { return x + y }
// 交换字符串,可以返回多个值 func swap(sx, sy string) (string, string){ return sy, sx }
func split(sum int) (x, y int){ x = sum * 4 / 9; y = sum - x return }
// 变量声明,直接 var i int = 1 或者 x := 2
func var_declare(){ var i, j int = 1, 2 x, y := 3, 4 var c, python, java = true, false, "1no" fmt.Println(i, j, c, python, java, x, y) }
// 基础类型
var ( ToBe bool = false MaxInt uint64 = 1<<64 - 1 z complex128 = cmplx.Sqrt(-5 + 12i) )
func basic_types(){ const f = "%T(%v)\n" fmt.Println(f, ToBe, ToBe) fmt.Println(f, MaxInt, MaxInt) fmt.Println(f, z, z) }
// zero values 零值
func zero_values(){ var i int var f float64 var b bool var s string fmt.Println("%v %v %v %q\n", i, f, b, s) }
// type conversions 类型转换 , 类型转化前必须显式添加类型转换
func type_conversion(){ var x, y int = 2, 6 var f float64 = math.Sqrt(float64(x*x + y*y)) var z uint = uint(f) fmt.Println(f, z) }
// for 循环,Go只有for一种循环
func sum(){ sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println("the sum is ", sum) }
// 前置条件和后置条件都可以为空
func sum2(){ sum := 1 for ; sum < 1000; { sum += sum } fmt.Println(sum) }
// go中循环只有for,可以用for实现其他语言中while的功能
func go_while(){ sum := 1 for sum < 100{ sum += sum } fmt.Println(sum) }
//无限循环
func infinite_loop(){ for{ // 无限循环 } }
// if语句 func sqrt(x float64) string{ if x < 0 { return sqrt(-x) + "i" } return fmt.Sprint(math.Sqrt(x)) }
func print_sqrt(){ fmt.Println(sqrt(2), sqrt(-6)) }
func main(){
fmt.Printf("hello world\n")
fmt.Println("----current_time is ", time.Now())
fmt.Println(math.Pi)
fmt.Println(add(10,6))
fmt.Println(add2(3,6)) a, b := swap("hello", "world")
fmt.Println(a,b)
fmt.Println(split(17))
var_declare()
basic_types()
zero_values()
type_conversion()
sum()
sum2()
print_sqrt()
// infinite_loop()
}
原文:http://www.cnblogs.com/Wolfanature/p/5827931.html