Go语言基础入门

注意:①go语言以包为单位

          ②每个文件必须先声明包

          ③程序想要运行必须得有main包,而且写在main方法里

一、变量

1、导入包后,必须要使用,否则报错

2、 变量的声明的格式: var 变量名 类型

       注意:变量声明过后,必须要使用

     

      可以同时声明多个变量:  var a ,b int 

3、变量的初始化

          

         var  b int = 10;//初始化

          b  = 20 ;//赋值

  4自动推导类型,要求是必须得初始化,通过初始化的值推断类型

          语法:   变量名:=值

         举例:  c := 30

         fmt.Println(" %T",c) ------>%T就是打印变量所属的类型

         注意: 在使用完自动推到类型后,不能再次声明这个变量了

与赋值的区别:

     自动推导只能用一次,赋值可以是多次

5、Println与Printf的区别:与java的类似

      

6,多重初始化

     a,b := 10,20

go语言实现值的交换

     i := 10

     j :=  20

    i, j = j, i  

 _匿名变量:丢弃数据不处理,   只有配合函数的返回值使用才有价值:比如,一个函数的返回值有多个,你只需要用一个,那句可以用匿名变量

temp, _ :=  i,  j------->这样j的值就没了

二、常量

变量的声明需要 var

常量的声明用const

下面的声明b的时候没有用:

 多个不同类型的变量的批量声明:

原本是: var  a int   

               var b float64

 现再可以:     var(  ------里面也可以自动推到类型

                  a int 

                  b float64

            )

常量也是一样的

注释代码:ctrl+\

三、iota枚举

1、iota也称作为常量自动生成器,每一行自动累加1

 2、iota是给常量赋值使用的

const(

     a = iota    //0

      b= iota  //1

       c = iota   //2

)

3、iota遇到const重置为0

const d = iota  ------d为0

4、如果是在同一行,值是一样的

const(

     i   =  iota   //0

      a,b,c = iota,iota,iota   //a,b,c都是1

      d = iota  //d是2 

)

四、数据类型

常用的是: bool,byte ,int uint,flaot64,string

字符类型

var ch byte 

ch = 97----------->a

或者这样赋值: ch  = 'a'

'\'以反斜杠开头的字符都是转义字符

字符串操作

           var str string

            str = "abc"

    他包含一个内建函数,len(字符串),表示有几个字符

    fmt.Println("len()  =",len(str))

字符和字符串的区别

    字符串都是隐藏了一个结束符的,'\0'

    例如: str = " a "--------就是由‘a’和‘\0’构成的

选择字符串中的某一个字符: str[0]

复数类型:可以进行实数和虚数的计算等

var t complex128

t = 2.1+31.2i

取 实部是   real(t),取虚部 imag(t)

fmt格式化

%v是自动匹配格式

%c, %T,% ,%s,%f 

输入

fmt.Scanf("%d",&a)简便格式:    fmt.Scan(& a)

类型别名☆非常重要

type  

例如:

 //给int64起一个别名交bigint

type bigint int64

var a bigint

fmt.Printf("%T\n",a)-------->bigint 

取地址符:&

取值符: *

流程控制结构

if:

     s := "zhang"

    if s== "zhang"{//左括号必须和if同一行

     }

if可以支持一个初始化语句,初始化语句和判断条件一分号分割

     if  a:10 ; a==10{

     } else if a>10{

     }else{

      }

switch

   num := 1

   switch num{

       case 1:  

             fmt.Println()

               break  //go语言还是保留了break关键字,不写的化也是默认包含了 

               fallthrough  //这是是不会跳出switch,会接着下面执行

       case 2:  .....

       case 3:  .....

       defalut :

     }

    //也可以支持初始化语句,

   switch    num : =10; num{

   }

  //甚至可以放条件

  score := 85

   

switch{

case   score>90: ......

case  socre<80: ........

 }

for

for i : = 1;      i<=10 ;  i++{

  }

range

str=" abc "

打印str每一个字符

for i:= 0;   i<len(str); i++{

}

//使用迭代打印每个元素,range默认是返回两个值:一个元素的位置,一个是元素的本省

for i, data := range  str{

    fmt.Printn(" 第%d个是%c ", i,  data) 

}

//甚至可以省略

for i := range str{   //这样默认是第二个返回值是  __ (丢弃)

      fmt.Println(" 第%d个是%c ", i,  str[i])

}

猜你喜欢

转载自blog.csdn.net/student__software/article/details/81460452