GO语言入门2:

四、运算符
1.算数运算符
+、-、*
/:值为商
%:取余
++、--
 
2.关系运算符
==、!=、>、<、>=、<=
 
3.逻辑运算符
&&、||、!
 
4.位运算符
&、|、^、<<、>>
 
5.赋值运算符
=、+=、-+、*=、/=、%=、<<=、>>=、&=、|=、^=
 
6.其他运算符
&:取地址运算符
*:指针运算符
:= 省略定义运算符
 
##注意
1.指针变量 * 和地址值 & 的区别:指针变量保存的是一个地址值,会分配独立的内存来存储一个整型数字。当变量前面有 * 标识时,才等同于 & 的用法,否则会直接输出一个整型数字。
2.Go 的自增,自减只能作为表达式使用,而不能用于赋值语句。
 
五、条件语句
1.if语句
if  条件  {    //条件无须括号扩起
    处理代码
}
2.if……else
if  条件  {    //条件无须括号扩起
    处理代码1
}
else{
    处理代码2
}
3.if语句嵌套
4.switch语句
switch  var {
    case  value1:
        处理代码1
    case  value2:
        处理代码2
    case  value3,value4,value5:
        处理代码3
……
    default:
        处理代码N
}
(1)Type Switch
switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s);
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}
(2)fallthrough
使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
 
5.select语句:select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。
select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s);
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}
以下描述了 select 语句的语法:
每个 case 都必须是一个通信
所有 channel 表达式都会被求值
所有被发送的表达式都会被求值
如果任意某个通信可以进行,它就执行,其他被忽略。
如果有多个 case 都可以运行,Select 会随机公平地选出一个执行。其他不会执行。
否则:
如果有 default 子句,则执行该语句。
如果没有 default 子句,select 将阻塞,直到某个通信可以运行;Go 不会重新对 channel 或值进行求值。
 
六、循环语句
1.for循环
1)基础的结构
for init; condition; post { }
2)仅有条件结构
for condition { }
3)死循环结构
for { }
4)for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:
for key, value := range oldMap {
    newMap[key] = value
}
2.while循环
3.break语句:经常用于中断当前 for 循环或跳出 switch 语句
4.continue语句
5.goto语句:可以无条件地转移到过程中指定的行。
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
格式:
goto label;
..
.
label: statement;
 
七、函数
1.函数的格式
func function_name( [parameter list] ) [return_types] {
   函数体
}
示例:
/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
   /* 声明局部变量 */
   var result int
 
   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result
}
 
2.函数调用:函数之间可以相互调用,执行相应代码块内容
 
3.多个返回值
package main
 
import "fmt"
 
func swap(x, y string) (string, string) {
   return y, x
}
 
func main() {
   a, b := swap("Google", "Runoob")
   fmt.Println(a, b)
}
 
4.闭包:Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。
 
示例代码:
(1)for循环
package main

import "fmt"

func main() {
    sum := 0
    for i := 0; i <= 10; i++ {
        sum += i
    }
    fmt.Println(sum)

    fmt.Println("--------------")
    i := 2
    for  i>0{
    	fmt.Print(i)
    	i--;
    }

    fmt.Println("*************")
    j := 1;
    for {
    	fmt.Print(j)
    	j++;
        if j>2 {
        	break;
        }
    }
}

(2)函数

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
     return i  
   }
}

func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
    nextNumber := getSequence()  

    /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
    fmt.Println(nextNumber())
    fmt.Println(nextNumber())
    fmt.Println(nextNumber())
   
    /* 创建新的函数 nextNumber1,并查看结果 */
    nextNumber1 := getSequence()  
    fmt.Println(nextNumber1())
    fmt.Println(nextNumber1())
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值