首页 > 其他分享 >Golang入门基础1

Golang入门基础1

时间:2022-08-26 19:13:51浏览次数:107  
标签:入门 数据类型 age 基础 var Golang go 类型 fmt

Golang入门

基本的项目结构

go的环境搭建比较简单就直接跳过了

工程结构如下

image-20220825115127341

每一个go程序都需要依赖一个包

现在写一个简单的程序

package main
import "fmt"
func main(){
	fmt.println("hello Golang")
}

同时导入多个包

import (
	"fmt"
	"unsafe"
)

手动编译 go build

image-20220825120238845

手动执行

image-20220825120407512

手动编译加执行 go run +.go(多用于测试代码)

image-20220825120635553

这里不会生成可执行文件所以在我们测试代码的时候用的比较多,这种运行时间要长一点。

image-20220825120928156

注意:手动编译生成的文件可以自定义名字

image-20220825145217762

语法注意事项

image-20220825150049589

image-20220825150529750

go语言中的注释只有行注释 // 和块注释 /**/

5.格式比较固定,方法的括号或者代码块的括号必须紧接着字母或括号,换行会报错

6.一行不超过80个字符,超过的使用换行展示,尽量保持格式优雅

API(应用程序接口)

java我们会查看相应的api去看官方提供的一些方法,go语言也不例外

Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国 (studygolang.com)

基本变量与类型

声明变量关键字 var

格式

var name type/var name type=初期值

变量的使用步骤:

1.声明

2.赋值

3.使用(在go语言中声明的变量必须被使用,不然编译报错)

func main(){

  var age int

  age = 22

  fmt.Println(age)

}

以上代码等同于,即声明和赋值可以同时进行

  var age int=22
  fmt.Println(age)

注意:变量不能重复定义,赋值的类型必须与其类型相匹配

image-20220825154335645

多变量同时声明

var i,j,k int
var i,j,k=10,"tom",21.2
i,j,k := 10,"tom",21.2

全局变量的声明(在函数外面的,import下面的变量声明)

var{
	n1 = 10
	n2 ="tom"
}

基本数据类型

数据类型大致分类如下

image-20220825155308140

整数类型

有符号

int,int8,int16,int32,int64

取值范围为image-20220825160448502

无符号

uint,uint8,uint16,uint32,uint64

取值范围0~(2的n次方)-1

image-20220825160525485

image-20220825161524636

所以年龄我们可以使用uint8或者byte类型就好了

这些类型都属于不同类型,golang语言中整数类型默认声明的类型是int类型

补充下Printf的用法

用于格式化,把变量的类型或者值补充到对应的占位符上

比如补充类型

func main(){
		var age byte
		age = 22
		fmt.Println(age)
		fmt.Printf("age的类型是,%T",age)
}

image-20220825162115233

要查看具体字节可以使用(注意导包unsafe)

unsafe.Sizeof(age)

image-20220826154553593

浮点类型

image-20220825163114180

image-20220825163607986

布尔类型

image-20220826145740094

字符串类型

在go中属于基本数据类型,java中属于对象

同样string在go语言中也是不可变的,改变值会重新创建空间(和java类似)

下面代码会报错

var s1 string = "ni"
s1[0] = "h"

注意:

1.当字符串中没有特殊字符时我们直接用双引号——“”

2.当字符串中有特殊字符,比如空格,换行等的时候我们使用反引号—— ``

3.可以用+=对字符串进行拼接并赋值,在拼接很长需要换行的时候,+保留在最后换行

基本数据类型的默认值(零值)

数字->0 boolean->false string->“”

基本数据类型互相转换

go语言的类型分的还是比较细的,不同类型的数据不能进行运算和比较以及赋值(int和int32都属于不同类型)

需要操作前必须进行显式转换

语法:(T是数据类型,v是变量名),这种方法只适用于数字之间的转化

T(v)

注意:这样做并不会改变v的数据类型而是返回值是要转化的类型

超出类型范围的值转化会溢出,即:

128->int8 会变成-128

以下是基本类型和string之间的转化
基本->string

方法1:用fmt.Sprintf(“%参数”,表达式)(常用)

image-20220826154649847

以下是对应类型的参数

image-20220826155258069

方法2:使用strconv包下的函数

这种方法只有转布尔类型的时候比较简单,其他类型转换还是推荐方法1

image-20220826155657399

image-20220826160418351

string->基本

方法同样也是使用strconv包下的函数

image-20220826160743581

对于这种返回可能出现的错误信息有两种方式

第一种忽略错误信息(用下划线接收即忽略):

var b,_=strconv.ParseBool(s1)

第二种,用参数接收,再用if语句对参数进行处理

b,err:=strconv.ParseBool(s1)
if err != nil{
	log.Fatal(err)
}

注意:string向基本数据类型转换的时候一定要确保能够转换(即内容和要转的类型能匹配上,而不是“golang”->boolean),否则将赋值给变量默认值

转义字符

image-20220826145507784

标签:入门,数据类型,age,基础,var,Golang,go,类型,fmt
From: https://www.cnblogs.com/qwerty-wy/p/16628893.html

相关文章

  • FLTK基础 - 创建第一个窗口
    //Fl.H是必须包含的头文件#include<FL/Fl.H>#include<FL/Fl_Window.H>#include<FL/Fl_Box.H>intmain(intargc,char**argv){//创建一个窗口,接下来创建......
  • [转]点云库PCL从入门到精通 随书源码(百度网盘下载)
    分享给需要的人。这里有你想要的东西-暗号-pdx6 相关链接:PCL点云数据处理基础❤️❤️❤️目录......
  • golang html转pdf
    url:=""res,err:=http.Get(url)iferr!=nil{fmt.Fprintf(os.Stderr,"fetch:%v",err)os.Exit(1)}//读取资源数据body:[]bytebody,err:=iou......
  • Java基础
    1.java.sun.com下载JDK,教学环境下载JDK17,生产环境下载JDK8或者112.配置path环境变量和JAVA_HOME3.要写代码先写注释4.标识符要有意义且符合规范5.变量的作用域通常是......
  • 03Spring入门
    SpringIoCInversionofControl控制反转主要靠依赖注入实现IoC容器是实现依赖注入的关键bean调用示例:在test中添加注解:@ContextConfiguration(classes=Commnunit......
  • Java 基础 - 正则表达式
     一、正则表达式 正则表达式是Java中一门独立的语言,用于检测特定字符串是否符合规则。正则表达式就是用来定义匹配的规则的。1.1规则定义   1.2用法  ......
  • 【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满)雷神讲授
    https://www.bilibili.com/video/BV19K4y1L7MT?spm_id_from=333.337.search-card.all.click&vd_source=b0cee746b0adbaa67743475d986bd0f8P1: P2:spring生态圈<--1:1......
  • 02Spring Boot入门
    创建Controller添加注解和方法packagecom.newcoder.community.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.b......
  • Spring Boot 2.x基础教程:使用Redis的发布订阅功能
    通过前面一篇集中式缓存的使用教程,我们已经了解了Redis的核心功能:作为K、V存储的高性能缓存。接下来我们会分几篇来继续讲讲Redis的一些其他强大用法!如果你对此感兴趣,一定......
  • HCIA-datacom 8.1 网络编程与自动化基础
    前言:把今天的python讲完,我们的所有HCIA-datacom的实验就做完了,但是这就够了吗?不够的,我们还需要做一个综合实验。但是综合实验,我就不会像前面讲解的这么细致了,因为如果你不......