从C++到Go(二)

从C++到Go(二)1

上一节讲完了概念差异,这节讲解语法

语法

声明语法和C++相反,类型跟在名字后面。类型的语法和变量的使用方式与C++不同。类型声明可以很容易地从左向右阅读。(var v1 int -> 变量v1是一个int

//Go                      C++
var v1 int                // int v1;
var v2 string             // const std::string v2;  (approximately)
var v3 [10]int            // int v3[10];
var v4 []int              // int* v4;  (approximately)
var v5 struct { f int }   // struct { int f; } v5;
var v6 *int               // int* v6;  (but no pointer arithmetic)
var v7 map[string]int     // unordered_map<string, int>* v7;  (approximately)
var v8 func(a int) int    // int (*v8)(int a);

声明通常采用关键字地形式,后跟要声明的对象的名称。关键字可以是var, func, const, 或 type中的一个。方法的声明是一个例外,因为方法的接收者出现在要声明的对象名称之前。

你也可以使用关键字,然后在圆括号中使用一系列声明。

var (
	i int
	m float64
)

当声明一个函数时,你必须为每个参数提供参数名或者不提供任何参数(也就是说,C++允许void f(int i, int);但是Go不允许func f(i int, int))。为了方便,在Go中你可以将具有相同类型的多个名称分组:

func f(i, j, k int, s, t string)

变量可以在声明时初始化。完成此操作后,可以指定类型但不是必须的。当没有指定类型时,变量的类型为初始化表达式的类型

var v = *p

如果一个变量没有被显式初始化,则必须指定变量的类型。此时变量将被隐式初始化为类型的0值(0, nil等)。因此在Go中没有未初始化的变量。

在函数内部,存在一个简短的声明语法:=

v1 := v2 // C++11: auto v1 = v2;

这等价于

var v1 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值