首页 > 其他分享 >golang基础知识

golang基础知识

时间:2023-05-04 14:13:51浏览次数:40  
标签:字节 符号 32 基础知识 golang 类型 64 次方

一 golang基础知识

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种计算机编程语言语言。
设计初衷
Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。"

  • 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
  • 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
  • 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。

应用领域

数据类型

  • int :有符号的整数类型:具体占几个字节要看操作系统的分配:不过至少分配给32位。
  • uint:非负整数类型:具体占几个字节要看操作系统的分配:不过至少分配给32位。
  • int8:有符号的整数类型:占8位bit:1个字节。范围从负的2的8次方到正的2的8次方减1。
  • int16:有符号的整数类型:占16位bit:2个字节。范围从负的2的16次方到正的2的16次方减1。
  • int32:有符号的整数类型:占32位bit:4个字节。范围从负的2的32次方到正的2的32次方减1。
  • int64:有符号的整数类型:占64位bit:8个字节。范围从负的2的64次方到正的2的64次方减1。
  • uint8:无符号的正整数类型:占8位:从0到2的9次方减1.也就是0到255.
  • uint16:无符号的正整数类型:占16位:从0到2的8次方减1.
  • uint32:无符号的正整数类型:占32位:从0到2的32次方减1.
  • uint64:无符号的正整数类型:占64位:从0到2的64次方减1.
  • uintptr:无符号的储存指针位置的类型。也就是所谓的地址类型。
  • rune :等于int32:这里是经常指文字符。
  • byte:等于uint8:这里专门指字节符
  • string:字符串:通常是一个切片类型:数组内部使用rune
  • float32:浮点型:包括正负小数:IEEE-754 32位的集合
  • float64:浮点型:包括正负小数:IEEE-754 64位的集合
  • complex64:复数:实部和虚部是float32
  • complex128:复数:实部和虚部都是float64
  • error:错误类型,真实的类型是一个接口。
  • bool:布尔类型

基础组件分为以下几种

  • 引用类型
    • slice
    • interface
    • chan
    • map
  • 非引用类型
    • array
    • func
    • struct

声明包和引用包

package main

import (
"fmt"
"lind-go/common"
//自定义的本项目的包
_ "lind-go/common"
)

赋值符号

var a
b :=

其中var 这种方式不论是局部还是全局变量都可以使用,但是后者也就是:=只有局部变量可以使用。也就是只有函数内部才能使用。
并且,var后面的变量后面的类型是可以省略的,省略后,go会在编译过程中自动判断。所以如果不省略就是长这样 var a int 。
数组的初始化

// 初始化的方式1
a := [6]string{}
// 初始化的方式2
var a [6]string

a[0] = "0"
a[1] = "1"
a[2] = "2"
a[3] = "3"
a[4] = "4"
a[5] = "5"

标签:字节,符号,32,基础知识,golang,类型,64,次方
From: https://www.cnblogs.com/lori/p/17371047.html

相关文章

  • golang 解析处理word文档扩展包
    github.com/unidoc/unioffice该扩展包对word操作功能比较全,但为商业使用,注册后有100次的试用,具体使用就不详细说明了,具体可以看https://github.com/unidoc/unioffice-examplesgithub.com/carmel/gooxml该扩展包为unidoc/unioffice的免费版,为收费版的1.4.0版本,虽然功能没有......
  • 基于centos release 7.9.2009的LINUX基础知识
    以下是一些你需要了解的基本命令:ls:列出当前目录下的文件和文件夹。cd:改变当前目录。mkdir:创建新的文件夹。rm:删除文件或文件夹。vi:打开一个文本编辑器。接下来,我们将讨论一些重要的运维任务和相应的命令:安装软件包yuminstall<package-name>:使用yum命令来安装软件包......
  • Arduino入门必备基础知识(基础认证考前总结)
    最近开始准备考取Arduino的官方认证,但之前没有系统地学习,因此打算好好整理一下,一方面当作考试复习,另一方面给想学习Arduino的朋友们一些帮助在学习之前,建议大家先在Arduino中文社区看一下使用教程,里面有很多答疑帖,还有很多干货,值得一看:https://www.arduino.cn/thread-1066......
  • Golang程序无法在Termux访问网络(DNS解析问题)
    原文:https://github.com/termux/termux-app/issues/869#issuecomment-433985523pkginstallprootresolv-confproot-b$PREFIX/etc/resolv.conf:/etc/resolv.conf./Go可执行程序或者交叉编译Android版解决此问题:https://www.cnblogs.com/jing332/p/16671425.html......
  • golang —— 类型断言的妙用
    最近写代码的时候发现编译器老是会给switchv.(type)一个简化提醒couldeliminatetypeassertionsinswitchcases,于是尝试根据提醒优化了一下: switchv:=v.(type){ caseint: m[k]=v*2 casestring: m[k]=goStrings.Repeat(v,2) default: }最后发现居......
  • 物联网基础知识1
    1.万物互联:贯穿于互联网的信息采集、信息传输、信息处理。2.物联网的概念最早由MITAuto-ID中心Ashton教授于1999年在研究射频识别(RFID)时提出。3.国际电信联盟(ITU):无所不在的“物联网”通信时代即将来临,世界上所有的物体,可以通过因特网主动进行信息交换,横向领域:覆盖普适计算机、传......
  • 物联网基础知识1
    1.万物互联:贯穿于互联网的信息采集、信息传输、信息处理。2.物联网的概念最早由MITAuto-ID中心Ashton教授于1999年在研究射频识别(RFID)时提出。3.国际电信联盟(ITU):无所不在的“物联网”通信时代即将来临,世界上所有的物体,可以通过因特网主动进行信息交换,横向领域:覆盖普适计算机、传......
  • golang原生实现JWT
    golang原生实现JWTJWT(JSONWebToken)是一种基于JSON的安全令牌,可以用于在不同系统之间传输认证信息。在Go中实现JWT验证,可以通过标准库crypto/hmac、crypto/sha256和encoding/base64来编写自己的JWT。获取Token我们在此封装一个JWT的struct结构体(由于除了Payload,其他很大可能......
  • golang —— 实现接口的结构体调用方式
    在接口上调用方法时,必须有和方法定义时相同的接收者类型或者是可以根据具体类型P直接辨识的:指针方法可以通过指针调用值方法可以通过值调用接收者是值的方法可以通过指针调用,因为指针会首先被解引用接收者是指针的方法不可以通过值调用,因为存储在接口中的值没有地址将一个......
  • 嵌入式开发入门-51单片机基础知识(8)- IIC
    一、IIC发送时序图从上图可以看出:起始条件:SCL线是高电平时,SDA线从高电平向低电平切换;停止条件:SCL线是高电平时,SDA线从低电平向高电平切换;首先SDA和SCL都处于空闲状态(SDA和SCL都为高电平时),然后,SDA跳变为低电平(可以理解为,SDA向SCL发出通知,我现在要准备发送数据......