小白从java转go,c语言掌握不深,有没有大佬可以给一些建议怎么样学习go

weixin_38064730 2019-09-20 10:55:59
从java转go,目前觉得难以理解的还是结构体,还有&*取址等符号的用法。希望大佬们能给我一些启发~ ^ ^
...全文
93 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38126921 2019-09-20
  • 打赏
  • 举报
回复
负责任地说go很好玩... 我也是从java转到go, 准确地说是2个现在都用, 不是彻底转战那种, go这个东西确实好用,越用越顺手, 只是不要尝试用java去比较它, 会很失望的. go有go的玩法, 不要习惯性的用OOP的思维去使用它. go到处都是指针, 而且很多地方也要求参数必须是指针, 习惯了就好了. 和C C++的指针比起来, go的指针要简单和安全许多.
weixin_38131914 2019-09-20
  • 打赏
  • 举报
回复
从java转到go干了半年,代码写的是很爽,后来又转回了java感觉啥都不对劲了
weixin_38071599 2019-09-20
  • 打赏
  • 举报
回复
学习和使用go不需要C语言掌握的很好. 你只要能区分引用和实体就行了. 结构体的话就理解成一个java bean 只不过没有java的OOP概念. 话说java不是挺好的么,为啥要转go, 原来用java很容易搞定的东西现在你会觉得处处不顺手的.
weixin_38088844 2019-09-20
  • 打赏
  • 举报
回复
我理解 struct 是具有封装性,具有对象的作用。想自定义一个类型,用struct,模型实体都是用struct定义。 对 * 和 & 理解举个例子: type Dog struct { } *Dog 代表 Dog 类型的指针类型。Dog 是 *Dog 的基本类型。*Dog 的值表示指向它的基本类型 Dog 的值的指针。 使用取址操作符 &,&Dog{} 获取本类型值 Dog{} 的指针值。使用取值操作符 *, *d 获取指针 d 指向的基本类型值。 可以参看:https://github.com/stayfoo/stayfoo-hub/blob/master/docs/golang/7、go中的指针.md
weixin_38094491 2019-09-20
  • 打赏
  • 举报
回复
哪些java很容易搞定go不顺手的 你说说看
weixin_38108279 2019-09-20
  • 打赏
  • 举报
回复
这不是一个需要抬杠的问题。。。 一个只熟悉java而没有其他语言经验的人转到go确实会处处不习惯的。 这个没啥争议的。没必要抬杠。
weixin_38108494 2019-09-20
  • 打赏
  • 举报
回复
指针是Go的核心概念,也是主要难点之一。什么时候加”&“,什么时候加”*“,很容易搞混。 一个关键点是要区分定义时和使用时的区别。 * 什么时候用”*“? + 在定义指针类型时用 * 什么时候用”&“? + 在需要把实体转化为指针时 ( 从来不在定义时用”&“) * 为什么要把实体转化为指针? + 如果函数的参数和返回值是指针,而你现有的是实体(Dog{}), 那么你要先转换才能传递参数或返回(&Dog{}) * 在访问指针和实体的成员时有区别吗? + 没有,不论Dog{} 是实体还是指针,都可以用"Dog.Leg". 这是Go出众的设计,省去许多麻烦。 * 为什么要把函数的参数和返回值定义为指针? + 为了能在函数中修改参数的值 + 当返回值为空时,指针可以设为nil,很容易。实体要设为空值(结构体的空值),很麻烦。 + Go规定,当在结构体(struct)中定义方法(method)时, 每个方法有一个接受器(receiver)。对于一个结构的所有方法,要么接受器全是指针类型,要么接受器全是实体类型。所以一般的原则是都定义成指针类型。 * 除了定义时用"*", 还什么时候用它? + 当你已有指针类型,但需要返回实体类型,这时需要把指针转化为实体,要用”*“,相当于”&“的反操作。 另外一个与之相关的很重要概念”引用类型(reference type)“。在Go语言中,”map, channel, slice,interface“是引用类型,”array,struct“是值类型(value type). 引用类型类似指针,但不是指针,前面不能加”*“把它变成实体。这部分比较复杂,要想完全讲透需要写一篇文章。重点我已点出来了,你先慢慢体会。 另外关于学习Go语言,请看我的文章**”如何快速高效率地学习Go语言“(https://zhuanlan.zhihu.com/p/77999699)**, 或是我对["怎么学习 Golang?"](https://www.zhihu.com/question/23486344/answer/787113240)的回答.
weixin_38114375 2019-09-20
  • 打赏
  • 举报
回复
因为公司有要求, 就要开始用go写平台了,然后看网上好想也有好多培训机构的网课,感觉质量参差不齐的,学了一部分,但是感觉还是比较模糊

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧