当前位置: 首页 > 工具软件 > GoPlus > 使用案例 >

我的Go+语言初体验——GoPlus基础语法学习

刘星火
2023-12-01

Go Plus的安装见博文Go&Golus的安装

兼容Go的特性(包括部分支持 cgo )

在GoPlus中用到的Go基础,具体应用到的基础如下

  1. 数据定义
    布尔型
    布尔型的值只可以是常量 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 是接口
  1. 导包
    import "fmt" 类似于python的导包操作
  2. 函数定义
    语法结构
func 函数名(){
函数体
}
  1. 判断结构
  • if - else语法结构
if 布尔表达式 {
   /* 在布尔表达式为 true 时执行 */
} else {
  /* 在布尔表达式为 false 时执行 */
}
  • switch语法结构
switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

GoPlus的新语法基础

  1. 输出语句的变化
    由Go的fmt.Printf()变为println
  2. 新增对有理数: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
  1. 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
}
  1. 支持列表切片
    但是这里与python的list不同:1. 它不支持负数索引 2. 它不支持自定义切片的步长
x := [1,2,3,4,5]
println x[:2]
  1. 支持列表推到式
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]
 类似资料: