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

}

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值