Go 语言基础--语法基础

作者: 邹志全 | 来源:发表于2019-07-10 22:46 被阅读84次

运算符

同其他语言一样go也有 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符 这几类,作用也是一致的,这里就不过多赘述了。
算数运算符:+、-、*、/、%、++、--
关系运算符:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!
位运算符:&、|、^、>>、<<
赋值运算符:=及复合赋值运算+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=
关于运算符的优先级,二元运算符运算方向均是从左至右,先计算括号内算式,其他的基本按照“单目乘除位关系,逻辑三目后赋值”。

条件运算

这一块儿比较简单,直接看代码吧
if:

var a = true
if a {
    fmt.Println("is true")
}

if-else:

var a = true
if a {
    fmt.Println("is true")
} else {
    fmt.Println("is false")
}

switch:

var target = "A"
switch target {
    case "A" : fmt.Println("A")
    case "B" : fmt.Println("B")
    default : fmt.Println("default")
}
/** 这里需要注意一点,go 中是自动break的 **/
/** case 也可以这么用 **/
switch {
    case target == "A" : fmt.Println("A")
    case target == "B" : fmt.Println("B")
    default : fmt.Println("default")
}

select:
select 是一种类似于switch的结构。
常用于监听IO操作,当IO操作发生时触发相应的动作.
在看select前先看一下channel,go建议使用通信的方式代替共享内存,通信的就是指的channel。
大体如下图所示


image.png

后续会对通道进行单独的介绍,这里近看一下该要即可。

/** 语法:每一个case 都必须是一个通信(发送 or 接受),所有channel都会被求值,所有被发送的表达式都会被求值,select会随机选择一个可执行的case执行,其他的不会执行。如果所有case都在执行 则选择default执行,如果没有default,select被阻塞**/
select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s); 
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}
/** 看一下 demo**/
package main

import "fmt"

func main() {
    ch1 := make(chan int, 1)
    ch2 := make(chan int ,2)
    ch1 <- 1
    var e1, e2 int
    select {
        case e1 = <-ch1:
          fmt.Printf("e1[%v]", e1)
        case e2 = <-ch2:
          fmt.Printf("e2[%v]", e2)
      default :
      fmt.Printf("default:e1[%v] e2[%v]", e1, e2)
    }
}

output:


image.png

大家可以看一下注释掉其中的default或者换个赋值情况看一下效果。

循环结构

Go 中循环结构就只有一个for循环,语法和其他语言一致,仅仅是for-each的语法结构不太一样而已。

/** 语法 **/
for init; condition; post { }
/** demo **/
for i:=1; i<10; i++ {
    fmt.Println(i)
}
/** go 可以对于slice、map、数组、字符串等进行遍历,数组这些key值就是下标**/
for key, value := range oldMap {
    newMap[key] = value
}
/** go 的for可以类似于while用的 **/
for true {
    fmt.Println("for for for")
}

这一篇就先介绍到这里。

相关文章

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • docker 源码入门

    前言 docker是go语言编写的,要看docker源码,最起码要学会go的基础语法。 了解 docker 基础架...

  • Go 语言基础--语法基础

    运算符 同其他语言一样go也有 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符 这几类,作用也是一致的,...

  • Go语言基础语法

    抽空看了一下go,顺便做了个总结。话说go的语法还真感觉有点特别,而且抽象层次更高,对初学者可能障碍更多。还是按照...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 -Go 标记 Go 程...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 Go 标记 Go 程序...

  • go 基础学习

    1 go 基础go 语法基础go 官方资料如果由C ,C++ 基础, 学习go 比较容易,本文学习go ,主要是为...

  • go语言基础

    go语言基础 go 语言接口

  • Java转Go后端开发Landing记录

    Java转Go后端开发Landing记录 基础语法 主要看Go 语言教程 | 菜鸟教程[https://www.r...

网友评论

    本文标题:Go 语言基础--语法基础

    本文链接:https://www.haomeiwen.com/subject/drrhkctx.html