栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Golang学习之路(六):Go+体验分享及字面量讲解

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang学习之路(六):Go+体验分享及字面量讲解

文章目录
  • 一、GO与GO+的直观区别
  • 二、GO+的字面量
    • 1. 什么是字面量
    • 2. 切片字面量两者区别
    • 3. map字面量两者区别
    • 4. 列表
    • 5. 结构体

GO+在线练习地址:https://play.goplus.org/


一、GO与GO+的直观区别

GO+在Go的基础上做了很多优化,Go+ 提供了更简单优雅的语法,比 Go 更接近自然语言。
下面是两者打印"hello world"的区别:

Go

package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

Go+

println "hello world"

一下就有了python的感觉了,是不是很方便! 下面简单讲解一下GO+的字面量


二、GO+的字面量 1. 什么是字面量

字面量也就是我们常说的变量的值。

比如int a=1 那1就是字面量;string b="ab";ab就是字面量。


在整型、字符、浮点这些字面量中,GO+的字面量和Go的字面量区别不大
在复数字面量(列表、map、切片等)中他们差别就体现出来了

2. 切片字面量两者区别

GO

	x := [2]float{1, 3.4} // []float64
	y := [1]int{1} // []int
	z := [2]interface{}{1+2i, "xsw"} // []interface{}

GO+

x := [1, 3.4] // []float64
y := [1] // []int
z := [1+2i, "xsw"] // []interface{}

3. map字面量两者区别
	x :=map[string] float64 {"Hello": 1, "xsw": 3.4} // map[string]float64
	y := map[string] interface{}{"Hello": 1, "xsw": "Go+"} // map[string]interface{}
	z := map[string] int{"Hello": 1, "xsw": 3} // map[string]int
	empty := map[string]interface{}{} // map[string]interface{}

GO+

	x := {"Hello": 1, "xsw": 3.4} // map[string]float64
	y := {"Hello": 1, "xsw": "Go+"} // map[string]interface{}
	z := {"Hello": 1, "xsw": 3} // map[string]int
	empty := {} // map[string]interface{}

4. 列表

GO

	a :=list.New()
	a.PushBack(1)
	a.PushBack(2)
	a.PushBack(3)

GO+

arr := [1, 2,3 ]

5. 结构体

GO+

type Config struct {
    Dir   string
    Level int
}
 
func foo(conf *Config) {
    // ...
}
 
foo({Dir: "/foo/bar", Level: 1})

这里 foo({Dir: "/foo/bar", Level: 1}) 相当于foo(&Config{Dir: "/foo/bar", Level: 1}) ,但是,您不能替换foo(&Config{"/foo/bar", 1})为foo({"/foo/bar", 1}),因为将其视为 {"/foo/bar", 1} 结构文字会令人困惑。

您还可以在 return 语句中省略结构类型。例如:

type Result struct {
    Text string
}
 
func foo() *Result {
    return {Text: "Hi, Go+"} // return &Result{Text: "Hi, Go+"}
}

GO+在线练习地址:https://play.goplus.org/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号