首页 > 代码库 > Go基础1

Go基础1

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()

}

 

Go基础1