首页 > 其他分享 >#小白学Go-01# 学完Go指南感受,对比一下Go与其他语言

#小白学Go-01# 学完Go指南感受,对比一下Go与其他语言

时间:2024-04-07 11:25:42浏览次数:17  
标签:01 变量 实现 定义 小白学 Go 方法 语言

本人以前是C/C++和Python选手,因为以后的工作需要用到Go,所以只好从零开始学习Go。本篇记录一下刚看完Go指南的感受,可能理解还不到位。

总体感受

学完Go指南给我最大的感觉就是,在变量定义方面很像Pascal,在函数、结构体、方法方面很像C,虽然没有C++中类的概念,但是通过方法可以实现类似的功能,但是我感觉不如C++的表达更加清晰,对于我这种初学者来说看各种方法和接口的定义有点眼花缭乱。

基本语法

在基本语法方面,其实这对于每种语言都不是一个难题。基本的变量类型都是一样的,单个数值的定义都很简单,不过Go支持短定义和隐式定义,这有点像Python中的写法,比较简单,一般也不会混淆。

不过对于数组方面,Go中有切片的概念,有长度和容量的概念,这好像与其他语言不太一样,并且一个切片的改动会影像其他切片,这样对于一致性比较有保证,但是对代码中创建副本进行处理时要特别小心。

至于循环方面,Go中只保留了for的写法,这也问题不大,同样可以实现while的功能。

最深得我心的一个用法便是switch的用法,之前用C写switch都太麻烦,并且条件部分不支持变量,写起来很难受,用的很少。现在Go语言中支持在switch中使用变量,真正是实现了“选择”的功能,感觉是更加方便的。

函数、结构体、方法

这些属于高级一点的用法了。函数方面与其他语言写法都很相同,在传入参数方面指针和引用的用法都差不多,不过Go语言中存在对结构体指针的简写,有时候会让人产生疑惑。结构体方面都是差不多的。

Go语言对我来说最不同的一点便是方法的设计,Go语言中允许给变量实现“方法”,实际上类似于将该变量看作是一个对象或者类,所实现的方法就像是这个类内的函数。同时,Go语言中存在接口类型,可以用来代表所有实现了同一种“方法”的变量类型,这个实际上实现了类似于多态的功能,不同的变量拥有同一种方法实现,具体调用哪一种方法取决于接口类型是哪一种。

进阶“包”

Go语言最大的特色应该是有很多关于http/https的包,可以简单实现网络和存储方便的许多功能,这些还没有学到,之后学了再补充。

标签:01,变量,实现,定义,小白学,Go,方法,语言
From: https://www.cnblogs.com/miniso/p/18118681

相关文章

  • 物流系统django版本
    1,创建modelspyfromdjango.dbimportmodelsclassGoods(models.Model):  id=models.AutoField(primary_key=True)  name=models.CharField('货物名称',default='',max_length=50)  source=models.CharField('渠道',max_length=......
  • ES2016新特性
    ES2016新特性本次更新改变的内容比较少,仅仅新增了includes()方法和简化幂运算的写法。Array.prototype.includesincludes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。[1,2,3].includes(2);//true[1,2,3].includes(4);//......
  • 创建虚拟环境时报错:AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_
    1.问题缘由用pycharm创建虚拟环境时遇到了如下问题:2.解决办法在旧版本的pyopenssl中使用最新版本的加密技术会报这个错误。升级pyopenssl可以解决这个问题。pipinstall--upgradepyopenssl更新成功 成功创建新的虚拟环境......
  • 01-hello-world
    01-HelloWorld源作者地址:https://github.com/bonfy/go-mega仅个人学习使用一般计算机书的开头都是HelloWorld我们亦不能免俗,所以本章我们的任务就是完成最简单的HelloWorld本章的GitHub链接为:Source,Zip建立目录结构与Python相比,Go对代码存放的位置还是有讲究......
  • Java/Mysql数据库+django学生就业管理系统 24237(免费领源码)计算机毕业设计项目推荐上
    学生就业管理系统摘 要随着社会的快速发展和人们生活水平的不断提高,旅游已逐渐成为人们生活的重要组成部分,用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣......
  • python计算机毕设【附源码】便利店收银管理系统(django+mysql+论文)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和经济的进步,便利店作为一种新型的零售业态在城市中迅速崛起。便利店以其便捷的地理位置、丰富的商品种类和高效的服务赢得了消费者的青睐。......
  • 蓝桥杯嵌入式2017年第八届省赛主观题解析
    1 题目2  代码/*USERCODEENDHeader*//*Includes------------------------------------------------------------------*/#include"main.h"#include"rtc.h"#include"tim.h"#include"gpio.h"/*Privateincludes--......
  • JetBrains GoLand 2024.1 (macOS, Linux, Windows) - 为 Go 开发者打造的完整 IDE
    JetBrainsGoLand2024.1(macOS,Linux,Windows)-为Go开发者打造的完整IDE请访问原文链接:JetBrainsGoLand2024.1(macOS,Linux,Windows)-为Go开发者打造的完整IDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsGoLand-GoFullStackGo......
  • COCI2011-2012#3 ROBOT 题解
    洛谷题面部分分做法直接依照题意模拟即可。可以获得\(48\)分的好成绩。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;longlongn,m;structnode{ longlongx; longlongy;}point[100005];longlongrobotx=0,roboty=0;longlongquery(){......
  • go~istio加载wasm的步骤
    参考https://github.com/higress-group/proxy-wasm-go-sdk/tree/main/proxywasmhttps://github.com/tetratelabs/proxy-wasm-go-sdkhttps://github.com/alibaba/higress/blob/main/plugins/wasm-go/pkg/wrapperhttps://tinygo.org/docs/reference/https://tinygo.org/docs......