GoLang基础语法

等她下班 · · 902 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

变量定义

从hello world入手

package main

import "fmt"

func main() {
    fmt.Println("Hello World")
}

控制台输出:

Hello World

变量默认值

package main

import "fmt"

func main() {
    var a int
    var s string
    fmt.Println(a, s)
}

控制台输出:

0 

注:s为"",故打印出来没有效果

如果想让""字符串显示,则代码如下:

package main

import "fmt"

func main() {
    var a int
    var s string
    fmt.Println(a, s)
    fmt.Printf("%d %q\n", a, s)
}

控制台输出:
注:s为"",故打印出来没有效果

0 
0, ""

变量定义并初始化

第一种方式

package main

import "fmt"

func main() {
    var a, b int = 3, 4
    var s string = "abc"
    fmt.Println(a, b, s)
}

控制台输出:

3 4 abc

第二种方式

package main

import "fmt"

func main() {
    var a, b, c, d = 3, 4, true, "def"
    fmt.Println(a, b, c, d)
}

控制台输出:

3 4 true def

第三种方式

package main

import "fmt"

func main() {
    a, b, c, d := 3, 4, true, "def"
    fmt.Println(a, b, c, d)
}

控制台输出:

3 4 true def

如果是在包内定义变量而非func中定义变量,不能使用使用第三种方式,即不能使用:=。

代码如下:

package main

import "fmt"

var wy  = 3
var wyy = 4
var ss = "3456"

func main() {
    fmt.Println(wy, wyy, ss)
}

还可以如下定义:

package main

import "fmt"

var (
    wy  = 3
    wyy = 4
    ss = "3456"
 )

func main() {
    fmt.Println(wy, wyy, ss)
}

输出如下:

3 4 3456

内置变量类型

bool, string

加u,代表无符号整数;不加u,代表有符号整数;不规定长度,与操作系统相关
(u)int, (u)int8, (u)int16, (u)int32, (u)int64

uintptr: 无符号整型,长度与操作系统相关,用于存放一个指针, ptr代表指针类型(Pointer)

byte: 类似 uint8

rune: 字符型,4个字节, 32位二进制位,类似 int32

float32, float64

complex64: 复数:实数和虚数为32位 float32

complex128: 复数:实数和虚数为64位 float64

Golang中的复数

package main

import (
    "fmt"
    "math/cmplx"
)

func main() {
    c := 3 + 4i
    fmt.Println(cmplx.Abs(c))
}

欧拉公式

package main

import (
    "fmt"
    "math/cmplx"
    "math"
)

func main() {
    fmt.Println(
            cmplx.Exp(1i * math.Pi) + 1)
}

控制台输出

(0+1.2246467991473515e-16i)

类型转换

类型转换是强制的,无隐式类型转换

勾股定理

package main

import (
    "fmt"
    "math"
)

func main() {
    var a, b int = 3, 4
    fmt.Println(math.Sqrt(float64(a*a + b*b)))
}

控制台输出

5

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:等她下班

查看原文:GoLang基础语法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

902 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传