go语言基础学习二

上周开始学习go语言,到不是感觉很难,也许从一种语言直接过渡到另外一种语言确实是需要时间的。在dos下敲了一天半的代码,实在是烦透了,单调枯燥,也没有提示如果有错误要一行行看,也许是使用可视化工具习惯了,在黑窗口里工作总是感觉非常不爽。在老大给我们的帮助资料中,我翻啊翻,终于找到了貌似是一种可视话的工具liteIDE.按照找到的资料,将其配置好,再用来写程序,真是惬意好多呀,而且有智能提示,仿佛写程序快乐了很多。

http://download.csdn.net/detail/lxy15329/4735111 这文档是我无意中发现的,让我重新找到了编程的乐趣。

      言归正传,说下今天的收获吧。

     今天又把电子书从头读了一遍,当然没有读到尾,让我一天只干一件事情是比较困难的,因为我害怕枯燥,激情耗尽便再也不想干了。电纸书已经读了一大半了,剩下的部分是go的精髓。基础差不多了吧,大多数语言的套路都是如此,只需要熟悉下一些不同之处而且过人之处便算是掌握了基础了。

    首先是关于字符串。

   对于多行字符串的书写。eg:

str := "hello"
         + "world"

这样是有问题的,因为go会将其解析为:

str := "hello";

     +"world";

这显然是不对的。要不说嘛,go自动给加分号,说到底是按照一套程序来完成的,人只能去遵循这套程序,而不能按照自己的想法来指挥程序完成。有两种办法可以解决,一种是按照这种方式:

str := "hello"+

           "world"

或者是使用反引号`

即  str :=`hello

                     world`

但是这样写会将换行符和各种空格包含进来。

  格式化输出:今天真是囧大了,因为写了一上午程序,自己还纳闷呢,怎么go中%c直接显示出来了,而不是显示字符呢。由于是在liteIDE中开发,好多都是有提示的,所以,自己也没注意,一直使用的是printf还是println。一直到下午看文档,才明白,原来上次因为是在dos下执行,所以使用的是printf,格式化输出,而今天,输入fmt之后就直接按回车了,只知道是输出,但是具体调用的是哪个函数确实是没放在心上。想想真是的,还好没有一直去思考这个问题,要不然,恨不得踹自己两脚。

   关于map的使用,到现在我还存在疑惑,因为有一个语句没执行成功,这个待到以后继续解决。

上例子:

   week := map[string] int{

 "monday":1,"tuesday":2,"wednesday",3,

}

注意,最后的逗号是必须的,是万万不能缺失的。

可能你只想要这个map种的值,而不需要键。可以这样:

for  _,days :=range week{

//do something

}

_得到值之后就将其舍弃了,正好达到用途。

如果想往map中添加项,很简单,week["thursday"]=4

若要修改,只需要直接赋值就可以了 week["thursday"]=0

若要判断元素是否存在

v,ok := week["thursday"],若存在,则ok的值为true,否则为false

在map中当然也能删除元素,delete(week,"thursday")就可以了


关于函数和自定义的类型。这个其实也不难,只是有些地方需要多加注意。自己添加的包中有函数,如果函数名字是大写字母开头,则是可以导出的,在其他包中可以调用,如果是小写字母,只能在内部调用。这个总感觉很不适应,干嘛弄这么麻烦啊,而且经常写着写着就忘了,怎么记得住什么情况啊。上午折腾了大半天,才恍然大悟。同样,关于自己定义的type,也是跟大小写有关系的。

 type Student struct{

  name  string

  age int

}

使用时候可以采用两种方式:

一:stu :=new (Student)

      stu.name="lxy"

     stu.age=11

二。stu :=new Student{"lxy",13}  //注意,是大括号,开始老是使用圆括号,坑苦我了呀

值得一提的是,go中的函数的返回值可以不止一个,这是个值得称道的地方,写法很简单,我就不举例子了。

明天继续学习go语言比较深入的东西,比如并发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值