首页 > 其他分享 >新手小白需要了解的 Go 基础细节杂谈

新手小白需要了解的 Go 基础细节杂谈

时间:2023-04-09 19:15:25浏览次数:40  
标签:字符 slice 变量 int 杂谈 数组 Go 新手

今日记录一下 学习 golang 这门语言遇到的一些比较特殊的细节,供大家参考。

 


 

 

 

 

 所以,在我们输出内容的时候,可以包含很多的非 ASCII 码字符。实际上,Go 是天生支持 UTF-8 的,任何字符都可以直接输出,甚至可以使用 UTF-8 中的任何字符作为标识符


 

 

 

 _ 这个变量在针对很多需要丢弃固定的值的情况下,适合使用_ 变量(如map、slice)

golang中不允许存在未被使用但是已经声明的变量


 

 

 

 尽管 int 的长度是 32 bit 但是int 和int32 并不可以互用

 

 

在Go中字符串是不可以直接改变的,例如:

 

 会直接报错

 

 

 

 

 

一些 Go 数据的底层的储存图示:

 

 这些基本类型底层都是分配了一块内存。然后存储了相应的值

 

当有多个变量或者常量需要声明时

 

 关键词 iota (枚举)

 

 

 

slice 的存储结构:

 

 

 len 是 slice 的长度

cap 是 slice 的最大容量

 

 使用append 时,若slice 还有剩余空间就会改变所引用的数组的内容,但是如果此时已经没有剩余空间,那么就会动态分配新的数组空间,原数组不受影响

 

 

map注意事项:

 

 

make 与 new 的区别:

 

 

 

 

 

各个变量的零值

 

标签:字符,slice,变量,int,杂谈,数组,Go,新手
From: https://www.cnblogs.com/slowlydance2me/p/17300714.html

相关文章

  • Go编写一个小网站--复制粘贴--GiftsForYou
    修修改改成为自己想要的七米老师的:https://github.com/Q1mi/bubblegifts_for_you就是送的礼物的记录字段包括时间、礼物、文字先运行起来1、创建数据库配置连接数据的用户密码CREATEDATABASEbubbleDEFAULTCHARSET=utf8mb4;conf/config.iniport=9000release=......
  • .NET Core MongoDB数据仓储和工作单元模式封装
    前言     上一章我们把系统所需要的MongoDB集合设计好了,这一章我们的主要任务是使用.NETCore应用程序连接MongoDB并且封装MongoDB数据仓储和工作单元模式,因为本章内容涵盖的有点多关于仓储和工作单元的使用就放到下一章节中讲解了。仓储模式(Repository )带来的好处是一......
  • golang 编译碰到问题 Package python-2.7 was not found in the pkg-config search pa
    golang运行单测或者编译程序时提示需要配置PKG_CONFIG_PATH环境变量,原因是在程序里使用了go-python包,要求运行环境有python2.7,并设置PKG_CONFIG_PATH环境变量,解决方案如下:#pkg-config--cflags--python-2.7Packagepython-2.7wasnotfoundinthepkg-configsear......
  • Go 语言切片是如何扩容的?
    原文链接:Go语言切片是如何扩容的?在Go语言中,有一个很常用的数据结构,那就是切片(Slice)。切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一种引用类型,它有三个属性:指针,长度和容量。底层源码定义如下:typeslicest......
  • Go 语言切片是如何扩容的?
    原文链接:Go语言切片是如何扩容的?在Go语言中,有一个很常用的数据结构,那就是切片(Slice)。切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一种引用类型,它有三个属性:指针,长度和容量。底层源码定义如下:typeslices......
  • Golang与Java全方位对比总结
    本文针对Golang与Java的基础语法、结构体函数、异常处理、并发编程及垃圾回收、资源消耗等各方面的差异进行对比总结,有不准确、不到位的地方还请大家不吝赐教。一、基础语法Golang:编码风格及可见域规则严格且简单;Java:来说层次接口清晰、规范,主要表现有以下这些。1、变量......
  • Golang基础--defer的用法
    defer语句用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟的函数取出执行。三个示例:import"fmt"funcmain(){varinit=1deferfmt.Println(init)init=2}输出1。延迟函数fmt.Println(aInt)的参数在defer语句出现时就已经确......
  • Golang回调函数
    Golang回调函数实例二则定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于......
  • Python 操作 MongoDB
    Python操作MongoDB目录Python操作MongoDB1MongoDB简介1.1NoSQL的优点/缺点1.2使用MongoDB注意事项1.3MongoDB数据类型2MongoDB命令2.1基础命令2.2集合的增删改查2.2.1增加2.2.2查询2.2.3改2.2.4删除3python操作MongoDB1MongoDB简介MongoDB是一个基于分......
  • 【笔记】VisionMobile:扁平、扩展、挖掘,Google的策略的三大支柱
    今天看Flatten,Expand,Mine:ThethreepillarsofGoogle’sstrategy,很有趣的文章。将主要观点做了笔记。Google收入中压倒性的96%来自数字广告,为此,Google策略有三。一、Faltten:扫平任何广告和眼球之间的障碍。Google的两大操作系统Android和ChromeOS都是开源,可获取和衍生。......