make和new的区别
Go语言中new与make的区别
1.二者都是用来做内存分配的。
2.make只用于slice、map以及channel的初始化,返回的还是这三个引用类型本身;
3.而new用于类型的内存分配,并且内存对应的值为类型零值,返回的是指向类型的指针。
Go的语法点
1.go里通过首字母大小写来区分它是私有的还是公有的,比如对于一个结构体属性一般就以大写开头(和Java不一样,不需要什么getter,setter方法);而对于方法而言,它是隶属于包(包名一定是小写的),因此大写表示它可以被包外访问,小写只能被包内访问;
还能声明在函数里,这种情况只对函数局部可见;
2.如果要声明一个变量但不初始化,必须指定类型,如var obj AnClassType;(常量用const,类型是type,函数是func),如果同时初始化可以用短变量的方式如obj := new (AnClass),注意,这里和其他语言的new AnClass()不一样;
3.1.13版本的go,string转换为字节数组,默认就是UTF-8的;
4.struct也是值类型,因此struct的变量不能和nil比较,而必须是&AStructObj;
5.如果方法返回时出现异常,则其值为默认值,如int是0,struct类型是一个{};
6.对于特殊名字,如JSON, HTML,则一般这样命名HTMLEscape()或htmlEscape()而不会叫escapeHtml();
7.对于普通方法定义一般是func met() (ret int, err error) {... ret = 3;return},只要需要返回返回值或异常其中的一种则最后就必须要有return,但是和Java等语言不一样的是不需要写return xxx,因为它就是返回函数签名里的ret和err;
go的一般过去时是什么
一般过去时是用过去式表示过去发生的动作或状态,这在Go语言中也是一样的。
Go的一般过去时通常是使用过去式动词加上了ed,比如:walked,talked,played等等。
除了一般过去时,Go语言还有其他时态,如现在完成时,过去完成时等等,需要根据上下文及时进行判断和运用。
是went,例如:
1.I went to see if my old school was still there.
我去看过母校是否依然存在。
2.She went to Australia to start a new life.
她去澳大利亚开始新的生活。
go on等于什么词组
go on等于词组keep on
例句如下,请仔细体会和理解
1.
The police don't have much to go on.
警方没多少依据。
2.
Can I have a go on your new bike?
我能骑骑你的新自行车吗?
3.
We can't go on like this ─ something's got to give.
我们不能继续这样了——得作一些改变。
还没有评论,来说两句吧...