搜索
bottom↓
回复: 49

[分享]golang和c语法对比,快速上手

[复制链接]

出0入0汤圆

发表于 2020-2-23 22:50:32 | 显示全部楼层 |阅读模式
本帖最后由 Baldwin 于 2020-2-24 08:58 编辑

    由于疫情影响,正好在家初学了go语言,后面也想在嵌入式上用。为了方便以后的人快速学习,将2种语法做了简单对比,如有不对的地方,还请大家指出!





感觉还有好多是go特有的,c没有,就没有列

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-2-23 22:51:32 来自手机 | 显示全部楼层
初次看起来,有点别扭

出0入0汤圆

发表于 2020-2-23 22:54:21 | 显示全部楼层
也想试试   就是语法  用起来觉得别扭   

出0入36汤圆

发表于 2020-2-24 03:07:54 来自手机 | 显示全部楼层
我非常不习惯go的变量定义

出0入149汤圆

发表于 2020-2-24 03:53:00 来自手机 | 显示全部楼层
golang 目前什么场景用的比较多?

出0入0汤圆

发表于 2020-2-24 03:55:56 来自手机 | 显示全部楼层
这个语言主要用来做什么?

出0入0汤圆

发表于 2020-2-24 05:27:53 来自手机 | 显示全部楼层
感觉嵌入式用上go还有些时间,C不够用的地方C++够了。

出0入0汤圆

发表于 2020-2-24 07:31:49 来自手机 | 显示全部楼层
谢谢楼主分享!

出50入58汤圆

发表于 2020-2-24 07:33:48 来自手机 | 显示全部楼层
c是最优美简洁的语言,没有之一

出0入93汤圆

发表于 2020-2-24 08:16:59 | 显示全部楼层
总体来说,代码变长了而不是简洁了,简洁的是更多的库和语法糖
很奇怪这些大公司总是热衷于创造新语言而不是改个已有的语言,比如python加上静态类型改成LLVM本机编译型的,不是更牛逼吗
现在的C++标准也是使劲作,各种没啥卵用的特性使劲堆,有用的排期到若干年后,致使现在都C++20了C++11普及都成问题

出0入4汤圆

发表于 2020-2-24 08:38:43 | 显示全部楼层
takashiki 发表于 2020-2-24 08:16
总体来说,代码变长了而不是简洁了,简洁的是更多的库和语法糖
很奇怪这些大公司总是热衷于创造新语言而不 ...

与其改别的语言,真不如重新设计来得省事
写代码都知道,直接按要求重新写过,比在前人的代码上改来得方便

出0入0汤圆

 楼主| 发表于 2020-2-24 08:59:06 | 显示全部楼层
之前帖子里没法加表格,导致看起来不直观,重新改了一下

出0入0汤圆

 楼主| 发表于 2020-2-24 09:00:19 | 显示全部楼层
longsky1985 发表于 2020-2-23 22:51
初次看起来,有点别扭

之前帖子内容整理的不好,看起来不直观;
另外,如果是c用的很熟的话,go一开始用是特别别扭

出0入0汤圆

 楼主| 发表于 2020-2-24 09:01:46 | 显示全部楼层
4058665 发表于 2020-2-23 22:54
也想试试   就是语法  用起来觉得别扭

感觉google是为了特意将go和c、c++做区分,把语法搞得反的

出0入0汤圆

发表于 2020-2-24 09:12:56 | 显示全部楼层
步子有点大,继续C C++

出0入0汤圆

 楼主| 发表于 2020-2-24 09:25:42 | 显示全部楼层
Momo 发表于 2020-2-24 03:53
golang 目前什么场景用的比较多?

个人感觉,go后面可以用在linux应用级别的开发,有些网友用go开发应用,资源消耗也不是很大,主要是开发方便

出0入0汤圆

发表于 2020-2-24 09:26:20 | 显示全部楼层
感谢分享

出0入0汤圆

 楼主| 发表于 2020-2-24 09:28:51 | 显示全部楼层
xuekcd 发表于 2020-2-24 03:55
这个语言主要用来做什么?

go在网络这块比较丰富,后期一些物联网开发可以用的上

出0入0汤圆

发表于 2020-2-24 09:32:09 | 显示全部楼层
用起来觉得别扭 ,感觉还是C精简,符合使用习惯

出235入235汤圆

发表于 2020-2-24 09:42:24 | 显示全部楼层
这两天也看了下go,有个优点就是编译型,win平台也能生成linux下的执行文件。在网络方面还是方便的。

出0入0汤圆

 楼主| 发表于 2020-2-24 10:19:53 | 显示全部楼层
wuguoyan 发表于 2020-2-24 09:32
用起来觉得别扭 ,感觉还是C精简,符合使用习惯

一开始我也是这么觉得,c语法比较简单,但是提供了指针这个神器,后期参考依赖开发人员的能力;
go相对了c,封装了很多工具,可以让开发者降低一些难度;
举个不恰当的例子:c语言类似于练舞时的内功心法,外功依赖于内功;go类似于内功+外功,

出0入0汤圆

发表于 2020-2-24 10:33:51 | 显示全部楼层
一个golang的朋友说哪怕你的后端代码写的再烂,测性能时也是杠杠的,go的并发天然的爽。但go目前还没有开箱即用的脚手架,这点不如php和py。

出0入0汤圆

发表于 2020-2-24 10:42:32 | 显示全部楼层
avr-arm 发表于 2020-2-24 10:33
一个golang的朋友说哪怕你的后端代码写的再烂,测性能时也是杠杠的,go的并发天然的爽。但go目前还没有开箱 ...

go的工程性确实方便,配合好的ide(goland),写起代码来感觉就是爽

出0入0汤圆

发表于 2020-2-24 10:48:43 | 显示全部楼层
影响中与Pascal风格差不多。

出0入0汤圆

发表于 2020-2-24 10:49:49 | 显示全部楼层
除了网络,并行,还有什么优缺点?

出0入0汤圆

 楼主| 发表于 2020-2-24 11:20:54 | 显示全部楼层
powerk6 发表于 2020-2-24 10:49
除了网络,并行,还有什么优缺点?

我目前主要是用在嵌入式上,不是用在服务器后端开发,看中它的成熟库,比如http,校验,xml,等等;这些用c或者c++搞起来需要自己造轮子

出0入0汤圆

 楼主| 发表于 2020-2-24 11:44:13 | 显示全部楼层
yj_yulin 发表于 2020-2-24 10:42
go的工程性确实方便,配合好的ide(goland),写起代码来感觉就是爽

我也准备用goland开发,相比vscode,有啥特别优势呢

出0入0汤圆

发表于 2020-2-24 11:54:30 | 显示全部楼层
Baldwin 发表于 2020-2-24 11:44
我也准备用goland开发,相比vscode,有啥特别优势呢

谁用谁知道,在goland写代码感觉就是一种享受

出0入0汤圆

发表于 2020-2-24 12:35:26 | 显示全部楼层
yj_yulin 发表于 2020-2-24 11:54
谁用谁知道,在goland写代码感觉就是一种享受

语法看起来不明显啊,库呢?

出0入0汤圆

发表于 2020-2-24 15:08:55 | 显示全部楼层
本帖最后由 slzm40 于 2020-2-24 15:12 编辑
powerk6 发表于 2020-2-24 12:35
语法看起来不明显啊,库呢?


有标准库. 保证向后兼容. 网络库也很全的.最爽的是布署和跨平台编译.
特别在并发方面, 绝对给力.
上面是基本对比. 特有的比如select,chan,interface,方法以及goroutine并发才是核心,也是简化编程方面的东西.
用起来也很享受

出0入0汤圆

发表于 2020-2-24 15:13:42 | 显示全部楼层
Baldwin 发表于 2020-2-24 11:44
我也准备用goland开发,相比vscode,有啥特别优势呢

区别不太大, goland很多提示方面会更强,而且更专业一些吧. 建议goland可以减少更多的麻烦.

出0入0汤圆

发表于 2020-2-24 17:13:05 来自手机 | 显示全部楼层
Baldwin 发表于 2020-2-24 11:44
我也准备用goland开发,相比vscode,有啥特别优势呢

用在嵌入式上,是linux平台吗,单片机不行吧

出0入0汤圆

发表于 2020-2-24 19:50:00 | 显示全部楼层
缺点是什么呢?

出615入1076汤圆

发表于 2020-2-24 20:10:04 | 显示全部楼层
跟找女朋友一樣,第一眼看着不喜歡,就沒有然後了。。。

出0入0汤圆

发表于 2020-2-24 20:46:00 | 显示全部楼层
只会用C语言吧。

出0入0汤圆

 楼主| 发表于 2020-2-24 21:35:29 | 显示全部楼层
dukelec 发表于 2020-2-24 20:10
跟找女朋友一樣,第一眼看着不喜歡,就沒有然後了。。。

感情多处处就有了

出0入0汤圆

 楼主| 发表于 2020-2-24 21:36:46 | 显示全部楼层
Pupil 发表于 2020-2-24 17:13
用在嵌入式上,是linux平台吗,单片机不行吧

单片机上好像目前还不行,资源不够

出0入0汤圆

发表于 2020-2-24 21:37:18 | 显示全部楼层
这个应用场景是?

出0入0汤圆

发表于 2020-2-25 08:56:38 来自手机 | 显示全部楼层
个人更喜欢rust,语法更舒服一点

出0入0汤圆

发表于 2020-2-25 09:04:56 来自手机 | 显示全部楼层
Baldwin 发表于 2020-2-24 11:20
我目前主要是用在嵌入式上,不是用在服务器后端开发,看中它的成熟库,比如http,校验,xml,等等;这些 ...

为啥需要造轮子?这种c库不是很多吗

出0入119汤圆

发表于 2020-2-25 09:11:42 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2020-2-25 09:13:44 | 显示全部楼层
要上golang需要上linux吗?如果需要就排除了一大票的MCU了。

出0入0汤圆

 楼主| 发表于 2020-2-26 08:42:35 | 显示全部楼层
flamma 发表于 2020-2-25 09:13
要上golang需要上linux吗?如果需要就排除了一大票的MCU了。

golang是跨平台的,但是对资源有些要求

出0入0汤圆

发表于 2020-3-1 18:24:28 | 显示全部楼层
请教LZ,GO有对应的GUI吗?

出0入0汤圆

发表于 2020-3-2 09:03:55 | 显示全部楼层
mangolu 发表于 2020-3-1 18:24
请教LZ,GO有对应的GUI吗?

没有官方的gui,第三方的很多. go定位是在服务器端.

出0入0汤圆

 楼主| 发表于 2020-3-2 11:08:13 | 显示全部楼层
mangolu 发表于 2020-3-1 18:24
请教LZ,GO有对应的GUI吗?

看你需要什么样的gui应用,可以用go+web这样方式

出0入8汤圆

发表于 2020-3-2 11:20:24 | 显示全部楼层
nanfang2000 发表于 2020-2-25 08:56
个人更喜欢rust,语法更舒服一点

第一次见到 Rust,关注一下,谢谢分享信息。

出0入71汤圆

发表于 2020-3-2 11:47:19 | 显示全部楼层
本来C已经很好了,有搞些语言出来骗小娃娃

出0入71汤圆

发表于 2020-3-2 11:48:56 | 显示全部楼层
Baldwin 发表于 2020-2-24 09:25
个人感觉,go后面可以用在linux应用级别的开发,有些网友用go开发应用,资源消耗也不是很大,主要是开发 ...

LINUS大人肯定不高兴,他一直都在拒绝C++,“世界上只有两种语言,C语言和其他语言”

出0入0汤圆

发表于 2020-3-4 09:43:42 | 显示全部楼层
dellric 发表于 2020-3-2 11:47
本来C已经很好了,有搞些语言出来骗小娃娃

docker容器技术,k8s集群,都是go语言为基础语言发展出来,在推动go的发展.
天生并发协程池,google背书.也希望多骗骗小娃娃啊.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 01:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表