• Go 语言基础(一)


    一、区别于其他语言的特点:
    清晰并且简洁、并行(线和 goroutines)、Channel、快速、安全、标准格式化、
    类型后置(var a int)、UTF-8、开源、开心
    Erlang[7] 与 Go 在部分功能上类似。Erlang 和 Go 之间主要的区别是 Erlang 是函 数式语言,而 Go 是命令式的。Erlang 运行在虚拟机上,而 Go 是编译的。Go 用 起来感觉更接近 Unix
     
    二、Hello World
    package main
    imort "fmt" // 实现格式化的I/O
    /*Print something*/
    func main(){
    fmt.Printf("Hello,word ");
    }
     
    注:packagemain必须首先出现,紧跟着是import。在Go中,package总是首先出现, 然后是 import,然后是其他所有内容。当 Go 程序在执行的时候,首先调用的函 数是 main.main(),这是从 C 中继承而来。
     
    编译和运行代码
    %go build helloworld.go
    会生成一个叫helloworld 的可执行文件
    %./helloword
    Hello,world
     
    三、变量 ,要先声明后赋值
    var a int 声明
    a =15 赋值
    等同于
    a :=15 直接声明并赋值
     
    多个变量:
    var (
    x int
    b bool
    )
    或者如果都是 整型,可以声明
    var a,b int
    平行赋值 a, b := 20, 16
     
    注: 如果你希望将两个(或更多)语句放在一 行书写,它们必须用分号 (’;’) 分隔。一般情况下,你不需要分号
    一个特殊的变量名是 _(下划线)。任何赋给它的值都被丢弃。在这个例子 中,将 35 赋值给 b,同时丢弃 34。
    _, b := 34, 35
    Go 的编译器对声明却未使用的变量在报错
     
    四、变量类型
    1、布尔类型 true 和 false
    2、数字类型
    int ,你可以使用 int32 或者 uint32。完整的整数类型列表 (符号和无符号)是 int8,int16,int32,int64 和 byte,uint8,uint16,uint32, uint64。 byte 是 uint8 的别名。浮点类型的值有 float32 和 float64
     
    注:赋值可以用八进制、十六进制或科学计数法: 077,0xFF,1e3 或者 6.022e23 这 些都是合法的。
     
    3、常量
    const x=4
    const (
    a = 0 ← Is an int now b string = "0"
    )
     
    4、字符串
    s := "Hello World!" 必须是双引号
    或者 var s string = "hello"
    注: 一旦给变量赋值,字符串就不能修改了
    多行字符串:
    s := "Starting part" + "Ending part"
    会被转换为:
    s := "Starting part";
    + "Ending part";
    这是错误的语法,应当这样写:
    s := "Starting part" + "Ending part"
    另一种方式是使用反引号 ` 作为原始字符 串符号:
    s := `Starting part Ending part`
     
    另:
    rune
    Rune 是 int32 的别名。用 UTF-8 进行编码。这个类型在什么时候使用呢?例如需 要遍历字符串中的字符。可以循环每个字节(仅在使用 US ASCII 编码字符串时 与字符等价,而它们在 Go 中不存在!)。因此为了获得实际的字符,需要使用 rune 类型。
     
    5、复数
    它的变量类型是 complex128 (64 位虚数部分)。如果需要小 一些的,还有 complex64 – 32 位的虚数部分。复数写为 re + imi,re 是实数部分, im 是虚数部分,而 i 是标记 ’i’ (√−1)。使用复数的一个例子:
    var c complex64 = 5+5i;fmt.Printf("Value is: %v", c) 将会打印:(5+5i)
     
    6、错误
    Go 有为了错误而 存在的内建类型,叫做 error。 var a error 定义了 a 为一个 error,a 的值是 nil。
     
     
    五、运算符和内建函数
     
    + - * / 和% 会像你期望的那样工作,& | ^ 和&^ 分别表示位运算符按位与, 按 位或,按位异或和位清除。 && 和 || 运算符是逻辑与和逻辑 或。表格中没有列 出的是逻辑非:!。
    虽然 Go 不支持运算符重载(或者方法重载),而一些内建运算符却支持重载。
     
    Go 保留字:
     
     
     
     
     
  • 相关阅读:
    【SQL Server学习笔记】Service Broker创建异步的、数据驱动的消息应用程序
    记录几句不错的话
    DBA最缺的不是技术
    小数点引起的数据类型转换问题
    hdu 3062 2SAT最基础题
    POJ 1679 判断最小生成树是否唯一
    POJ 1459 构图+最大流(Edmond_karp模版)
    POJ 3522 最大边与最小边差值最小的生成树
    POJ 1659 根据度序列构图
    POJ 1273 求最大流(Edmond_karp模板题)
  • 原文地址:https://www.cnblogs.com/wjq310/p/6545451.html
Copyright © 2020-2023  润新知