go基础学习第一天

package main

import "fmt"

func main(){
   fmt.Println("hello json")
   var a string = "Json"
   fmt.Println(a)
   var b,t int = 1,2
   fmt.Println(b,t)
   result,_:= Compute(2 ,2.1)
   fmt.Println(result)
}

//代码解读  每一个GO源码的开头都是使用package声明 表示该go代码所属的包
//包是GO语言里最基本的分发单位  也是工程管理中依赖关系的体现
//要生成GO可执行程序,必须要建立一个名字为main的包 并且在该包中包含一个叫main的函数(该函数是Go可执行程序的执行起点)
//go语言的main函数是不可以跟参数,也不能定义返回值
// 在包的声明之后 是一系列的import语句  用于导入该程序所依赖的包

// 函数声明
// func 函数名(参数列表)(返回值列表){}
//对应的实例如下
func Compute(value1 float64,value2 float64)(result float64,err error){

   result = value1+ value2
   return result,err
}

为了能够构建这个工程,需要先把这个工程的根目录加入到环境变量GOPATH中。假设calcproj
目录位于~/goyard下,则应编辑~/.bashrc文件,并添加下面这行代码:
export GOPATH=~/goyard/calcproj 
然后执行以下命令应用该设置:
$ source ~/.bashrc 
GOPATH和PATH环境变量一样,也可以接受多个路径,并且路径和路径之间用冒号分割。
设置完GOPATH后,现在我们开始构建工程。假设我们希望把生成的可执行文件放到
calcproj/bin目录中

 

package main

import "fmt"

//返回值三个
func GetName()(fsistName,lastName,nickName string){
    return  "may","chan","chibi Marko"
}

func main(){
   //如果只想获取nickName 则
   _,_,nickName:=GetName()
   fmt.Println(nickName)

   //常量的定义
   //Go的常量定义可以限定常量类型,但不是必需的。如果定义常量时没有指定类型,那么它
   //与字面常量一样,是无类型常量
   const Pi float64 = 3.1547
   const zero =0.0
   const (
      size int64 =1024
      eof =-1
   )
   const u,v float32 =0,3
   const a,b,c =3,4,"foo"
   fmt.Println(Pi)
    const mask = 1<<3
    fmt.Println(mask)

    //预定义常量
    // Go语言预定义了这些常量 true false 和iota
    // iota 比较特殊 可以被认为是一个可被编译器修改的常量 在每一个const关键字出现时 被重置为0
    // 然后在下一个const出现之前 每出现一次 iota 其代表的数字都自动加1

    //枚举
   const (
      Sunday = iota
      Monday
      Tuesday
      Wednesday
      Thursday
      Friday
      Saturday
      numberOfDays )
    fmt.Println(Saturday)


    //类型
    //布尔值 true
    //整型 int8,byte,int16 int uint uintptr
    //需要注意的是,int和int32在Go语言里被认为是两种不同的类型,编译器也不会帮你自动 做类型转换
    //浮点型 float32 float64
    //复数类型 :complex64、complex128。
   // 字符串:string。
   //字符类型:rune。
   // 错误类型:error。
   // 指针(pointer)
   //数组(array)
   // 切片(slice)
   //字典(map)
   //通道(chan)
   //结构体(struct)
   //接口(interf)

   //比较运算符
   i,j :=1,2
   if i==j{
      fmt.Println("yes")
   }else {
      fmt.Println("no")
   }

   //两个不同类型的整型数不能直接比较,比如int8类型的数和int类型的数不能直接比较,但
   //各种类型的整型变量都可以直接与字面常量(literal)进行比较

   //数组
   //数组是Go语言编程中最常用的数据结构之一。顾名思义,数组就是指一系列同一类型数据
   //的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数 组的长度

   //数组声明方法
   //[32]byte()  //长度为32的数组 每个元素为一个字节
   //[2*N]struct {x,y int32}  复杂类型数组
   // [1000]*float64    指针数组
   //[3][5]int 二维数组
   //[2][2][2]float64 // 等同于[2]([2]([2]float64))
   //从以上类型也可以看出,数组可以是多维的,比如[3][5]int就表达了一个3行5列的二维整 型数组,总共可以存放15个整型元素。
   arr :=[4]int{1,2,3,4}
   //for i:=0;i<=len(arr);i++{
   // fmt.Println("key:",i,"value:",arr[i])
   //}
   for i,v:= range arr{
      fmt.Println("key:",i,"value:",v)
   }
}

你可能感兴趣的:(学习总结,go)