刚入门Go语言小白需要注意以下五点:
创新互联专注于七星关区企业网站建设,响应式网站设计,商城网站定制开发。七星关区网站建设公司,为七星关区等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
1、注意书写代码的一些规范吧,特别是注意大小写、英文标点符号区别等,在特别的位置写上注释。
2、主要是理解伪代码所描述的算法,伪代码要注意是不能直接运行的。
3、注意编译器版本与书籍上所介绍版本是否一致,也注意特殊符号,印刷版本可能与实际不一致。
4、书上的版本和当前所用的版本是否一致,有些情况下书上版本在现在来用已经过时了。
5、逻辑走通;给自己信心,其实起步阶段不难的。
这些是死知识,把常用的记住,不常用的直接查表就行了
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。
type Human struct {
Name string
}
var people = Human{Name:"zhangsan"}
golang没有 '%u' 点位符,若整数为无符号类型,默认就会被打印成无符号的。
宽度与精度的控制格式以Unicode码点为单位。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数。
操作数的类型为int时,宽度与精度都可用字符 '*' 表示。
对于 %g/%G 而言,精度为所有数字的总数,例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45)。
%e 和 %f 的默认精度为6
对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格。
而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断。
使用起来很简单,一般配合fmt.Printf()使用,因为fmt的Printf()是有格式的输出,切忌使用Println(),否则将会以字符串的形式输出。
查看原文: golang fmt格式“占位符”
Go不支持条件运算符,出了代码行数多一点,没什么不简洁的。
a := 1
if true {
a = 2
}
先看看这几个句子。(选自学生作文,注意看标点。)
1. So why not join us and work hard, not only for yourself, but our whole team.
2. If we have some difficult problem. We can discuss the problems with each other.
3. Do you have some good idea. please tell me.
4. Communicating with each other is very important. We can pull t-
ogether and build a better team.
经常看到学生作文中使用的标点,要么乱点(随意的点,看不出是什么标点),要么乱用,就有种想骂人的冲动。
可是,骂谁呢?
老师们应该三番五次的强调过吧。
(就像further,都讲过是“进一步,深入”的意思,可是学生就愣是翻译不出来,还有的看成是future。)
看到这些,你服不服我不知道,反正我是有点儿服了。
这些学生太有个性了,老师要求的正经事一样都记不住。
看到这儿有看官该说了,别BB了,这事儿你说咋办?能给点建议不?
还能咋办,凉拌呗。
(以上的开头是不是像“懒婆娘的裹脚布——又臭又长”?其实是和一些学生学的。一篇作文要求80~100词,他们进入正题前就能写出四五十个词。你说用剩下的四五十个词能在正文里写出什么来?有些跑题哈,关于作文字数的话题,以前提过了。)
说正事儿吧,
今天就来扒扒英语中常用“标点符号”的底,看看我们该讲清哪些用法吧
标点符号是一套语言符号,是书面语中一系列表停顿、节奏和语调的符号,用以表示句子或句子成分的隔离或特指。也就是说,用在书面语中表示各句之间、各句子成分之间的语法和含义上的关系,以易于读者理解。
英语中常见的标点有句号、逗号、分号、冒号、问号、感叹号、破折号、引号、连字号、省略号、括号等等。
英语的标点符号与汉语的标点符号有很多相同之处,但也有一些区别。
下面挑几个常见标点符号的常见用法简单BB几句。
句号(period/full stop)
1. 表示一句话之后的停顿,主要用在陈述句和部分祈使句之后(有些祈使句后面用感叹号)。
如:They arrived.
Come over here.
Look out!
2. 用在缩写之后。
如:e.g. Dr. a.m. Dec. Mon.
etc. No. n. Mr.
3. 充当小数点儿(读做point)。
(网址中的点读作dot)
如:3.14(three point one four)
逗号(comma)
表短暂的停顿。
1. 分隔句中并列的词、短语、并列句中的各分句或复合句中的主、从句。
(主要是分隔非限定性定语从句。)
(如果状语从句位于主句之前,通常用逗号与主句分开。如果状语从句较短,也可以不用逗号隔开。)
如:He is tall, strong and handsome.
Everybody expected rain, but it never came.
I am going to talk with Jim, who is a friend of Lucy.
2. 分隔日期、地址、长数字、插入语、同位语、称呼语、独立成分等。
如:May 12, 1909
Beijing,China
65,324,205
Tom, be quiet.
3. 用于非正式信件的称呼语之后和书信的末尾。
(商业正式信函的称呼语后要用冒号。)
如:Dear Tom,
yours,
4. “某人说(sb said/says)”位于直接引语之前时,其后用逗号。(汉语中用冒号)
如果直接引语是陈述句且用于句首时,则要把句号改为逗号。
如:Tom said, “will you go with me?”
“Yes, I'll bear it in mind,” said Mr. Wakam hastily.
连字号(hyphen)
1. 用于移行。
一个单词只能在音节处断开,不能随意拆分,一个字母的音节一般不能移行。
如:En-
glish
但这样的不可以:
away变为 a-
way
city变为 cit-
y
(学生在写作文时为了工整、上下行对齐,常不按规则移行,犯了不该犯的错误。)
2. 连接复合词。
注意区别下列短语(带连字号和不带连字号的含义不同)
a small-business man (一个小生意人)
a small business man (一个身材矮小的生意人)
man-made lakes (人造湖)
Man made lakes. (人类制造了湖。)
3. 分数中间多用连字符连接。
如:three-fifths
4. 20至100之间的数字,十位数和个位数中间必须加上连字符。
如:sixty-five
冒号(colon)
1. 用在列举的内容前面。
如:You will need the equipment for the trip: a change of clothes, a few …
2. 进一步说明第一个句子。(有点儿类似于because。此句中的冒号可以用分号代替。)
如:That man is dishonest: he lies and cheats.
3. 引导长的或正式的引用句。
如:General Lee once said: “Duty is the sublimest word in the English language…”
(但我们现在在普通文章中一般用逗号。)
分号(semi-colon)
表示比逗号长但比句号和冒号短的停顿。
可以用来分隔没有连词连接的分句。
如:I went to work; I had a quick lunch; I came straight home.
Don't touch it; it's hot. (此句中的分号可以用冒号代替。《薄冰语法》)
(分号还可以表示“反意”,例句略。)
引号(quotation marks)
引号中如果再用引号,则应该用不同的形式。
即单引号和双引号不能同时使用,要交替使用。
如:Mick said, “Jack asked me, ‘when shall I come?’”
其他标点符号的用法就不谈了。正常用即可。
注意
1. 汉语中的句号是空心圈(。),英语中的句号是实心点(.)。
2. 汉语中的省略号是六个点(……),英语中的省略号是连续三个句号(…)。
3. 如果句子最后是省略号或表缩写的点时,一般不再另加句号了。
如果原来的标点不是句号的,要保留原来的标点。
如:Is that Mr. Smith or…?
The train will arrive at 5 p.m.
Well, there's a church and I think I see…
4. 直接引语在句首或句中时,直接引语末本来应是句号的,要改为逗号。
如:“Thank you, Doctor,” says Mrs. Green.
5. 句号也可用于不需要对方回答的疑问句后。(《薄冰语法》)
如:Will you weigh it, please. (表请求)
6. 汉语中有书名号,英语中没有书名号,而是把书名中的实词首字母大写,而且常用斜体。
7. 标点应该用在引号内。
以上仅参考一些书籍中的标点符号的用法简要整理出常见的形式。如有不当之处或在教学实际中遇到其他未提及的用法,欢迎各位看官留言、批评指正、以供大家学习探讨。
(个人认为,在教学中最好还是抓住基础用法讲透、练会,不要面面俱到,尤其是特殊用法,还是不要讲给学生为好。)
左移运算符()
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a 2 将a的二进制位左移2位,右补0,
左移1位后a = a * 2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
右移运算符()
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
例如:a = a 2 将a的二进制位右移2位,
左补0 or 补1 得看被移数是正还是负。
go语言中的指针和地址值,在使用上常常具有迷惑性,主要是其特殊的*、符号的使用,可能会让你摸不透,本文希望能讲清楚go语言的指针(pointer)和值(value)。
这里先简单的对指针和地址值概念做一个定义:
这是因为go方法传递参数的方式导致的,go方法函数传递参数传递的是一个拷贝,看看下面的程序会输出什么?
答案是8,而不是9,因为AddAge函数修改的是学生的一个备份,而不是原始的学生对象
如果你想正确的给学生年龄增加的话,函数传递的需要是这个值的指针,如下所示:
需要注意的是,这里我们的指针传递的仍然是一个拷贝,比如,如果你将s赋值给另外一个指针地址,不会影响原有的指针,这点可以自行实践下。
那在使用go语言开发的时候,何时该用指针何时改用地址值呢?比如考虑以下场景:
简单原则: 当你不确定该使用哪种的时候,优先使用指针
如果考虑在数组、切片、map等复合对象中使用指针和值,比如:
很多开发者会认为b会更高效,但是被传递的都是一个切片的拷贝,切片本身就是一个引用,所以这里被传递的其实没有什么区别。
对于指针和地址值的使用,大家需要牢记的一点就是go数据传递的不可变性,活学活用此特点,在无状态函数中此特性非常有用。