我的Go+语言初体验——GoPlus基础语法学习
Posted 啊~小 l i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Go+语言初体验——GoPlus基础语法学习相关的知识,希望对你有一定的参考价值。
Go Plus的安装见博文Go&Golus的安装
兼容Go的特性(包括部分支持 cgo )
在GoPlus中用到的Go基础,具体应用到的基础如下
- 数据定义
布尔型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
数字类型
整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
字符串类型:
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
基本语法结构:var identifier type
var + 变量名 + 数据类型
var i int
var f float64
var b bool
var s string
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
- 导包
import "fmt"
类似于python的导包操作 - 函数定义
语法结构
func 函数名()
函数体
- 判断结构
- if - else语法结构
if 布尔表达式
/* 在布尔表达式为 true 时执行 */
else
/* 在布尔表达式为 false 时执行 */
- switch语法结构
switch var1
case val1:
...
case val2:
...
default:
...
GoPlus的新语法基础
- 输出语句的变化
由Go的fmt.Printf()
变为println
- 新增对有理数:bigint、bigrat、bigfloat的支持
var a bigint = 1r << 65 // bigint, large than int64
var b bigrat = 4/5r // bigrat
c := b - 1/3r + 3 * 1/2r // bigrat
println a, b, c
- for循环的变化
1 支持for in 形式的循环
for x <- [1, 3, 5, 7, 11, 13, 17]
2 for in循环支持使用判断条件
# 这里会打印出列表里面所有大于3的数字
for x <- [1, 3, 5, 7, 11, 1, 17], x > 3
println x
3 支持range(start,end,sep)操作
···go
for i := range 1:10:3
println i
4 支持字符串按照字节迭代
```go
for x <- "woshdasdad"
println x
- 支持列表切片
但是这里与python的list不同:1. 它不支持负数索引 2. 它不支持自定义切片的步长
x := [1,2,3,4,5]
println x[:2]
- 支持列表推到式
a := [x*x for x <- [1, 3, 5, 7, 11]]
b := [x*x for x <- [1, 3, 5, 7, 11], x > 3]
c := [i+v for i, v <- [1, 3, 5, 7, 11], i%2 == 1]
以上是关于我的Go+语言初体验——GoPlus基础语法学习的主要内容,如果未能解决你的问题,请参考以下文章