前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​golang的变量定义为什么还没有python简洁?

​golang的变量定义为什么还没有python简洁?

作者头像
运维部落
发布2020-04-26 15:07:15
9540
发布2020-04-26 15:07:15
举报
文章被收录于专栏:运维部落运维部落

golang的变量定义为什么还没有python简洁?

今天的内容其实不能算一篇文章,而是学习golang时遇到的一个比较有意思的问题。欢迎大家指正批评

最近在深度研究k8sdocker,期间发现源码是golang。无奈,只好乘机把golang也学了。

我以前是写python和前端(vue,element,ajax,jquery,css,h5小程序...等),在学习golang时,发现其变量声明很不优雅。例子如下:

switch结构体

这里有两个设计理论可能不够优雅:

  • 疑问1:switch结构体

switchos变量声明后,还在再跟一个os,再跟case结构体,不然会报语法错。

当然了,还有另外一种写法:先声明os, 再 switch os {...}

  • 问题2:变量声明

关于go的变量声明, go作为新起之秀,为什么不隐式声明,非得 := 这种方式呢?像python 甚至 shell 声明变量的方式如下:i,j = 42, 2701go 的声明方式: i, j := 42, 2701

多一个:(冒号)不是增加了语言的复杂度吗,设计上还不如python优雅, 有什么其它原因?

go是强类型语言,它不是python这种弱类型的脚本语言。所以它的赋值和初始化本应该像c++一样提前先声明类型才能使用。但为了兼顾易用性,:=go提供的赋值和初始化的语法糖。python这种弱类型语言可以不用先声明类型,它牺牲了运行效率,提高了开发效率

这个和效率高低有多大关系呢?go只是少了编译的过程。变量的声明和调用方式,如果go还是使用=声明,只是在C实现的时候做一层转化,也有同样的效果吧

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • golang的变量定义为什么还没有python简洁?
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档