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

1 Golang入门

时间:2023-04-24 16:46:53浏览次数:35  
标签:入门 Golang 编译 导入 go main 语言

目录

1 Golang入门

1 Golang介绍

1.1 简介

Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言
Go是【静态 强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)
解析型语言——源代由解析器对代码进行解释执行
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行

python :动态强类型-【类型:不同类型之间能否直接运算】

go:静态强类型 -【静态:类型固定】

  • 解释型:源代码有解析器对代码进行解释后执行

    python、nodejs、php

  • 编译型:源代码编译成机器语言,然后由机器直接执行机器码即可

    c、java、c++、go

1.2 特性

① 跨平台的编译型语言

② 语法接近c语言

③ 管道chnnel 、切片slice、并发routine

④ 有垃圾回收机制

⑤ 支持面向对象和面向过程编程

1.3 go语言发展

  • 2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”

    用自己写自己被称为语言的自举

  • 2018年8月24日 go1.11 —— modules和WebAssembly支持 go mod模式 包管理

1.4 go语言的应用

由于其高并发和高性能,多应用与服务开发、并发、分布式、微服务等方向,自动化运维,区块链等方面

  • k8s:go写的

  • docker:go写的

  • 服务端开发

  • 分布式系统,微服务

  • 网络编程

  • 区块链开发

  • 内存KV数据库,例如boltDB、levelDB

  • 云平台

2 go

go代码是使用包来组织的,类似于其他编程语言中的库、模块、命名空间

2.1 包

一个包有一个或者多个.go文件组成,放在一个文件夹内。

比如:字符串相关的代码都放在string包中,每个.go文件的开始必须使用package声明,比如字符串包声明为 package string

2.2 main包

main包:用来定义具体的执行程序 (比如说我们的业务程序)

main包有特殊含义,一个项目必须要有main包,运行入口是main包下的main函数

func main是函数名,没有参数,没有返回值,是整个项目的入口

package main // 注释:声明go文件属于哪个包
import "fmt"  // 导入fmt包,自动导入的

func main() {
	fmt.Println("hello world")
}

main 函数

  • 如果当前包是main包,那么main函数就是执行程序的入口
  • 如果当前包不是main包,那么main函数就是一个普通函数

2.3 go程序的运行方式

  1. 编译并运行(一步完成)
  • 命令行运行 go run 文件名.go, 比如 go run main.go,
  1. 先编译为可执行文件,然后运行 (两步完成)
  • 命令行运行 go build 文件名.go, 比如 go build main.go
  • 生成可执行文件,比如 main
  • 执行可执行文件,./main

2.4 声明包与包导入

包导入,不使用会报错,编译不过

package main // 声明这个go文件属于哪个包,main有特殊含义,一个项目要运行必须要有main包,运行的入口是main包下的main函数

// 表示导入fmt包,自动导入的,goland自动导入的,使用了哪个包,编辑器会自动导入
// 包导入,不使用,会报错,编译不过
import "fmt"

a...表示 传入的hello world实参给了形参a

image-20230424155139984

标签:入门,Golang,编译,导入,go,main,语言
From: https://www.cnblogs.com/DuoDuosg/p/17350023.html

相关文章

  • 2 Golang语法基础
    目录2Golang语法基础1变量命名规范2语法规则:变量的定义与使用①完整定义②类型推导:自动推导出变量,是什么类型③简略声明:2Golang语法基础1变量命名规范Go语言中的函数名、变量名、常量名、类型名和包名等所有的命名,都遵循一个简单的命名规则:①一个名字必须以一个字......
  • Filter概述及快速入门
    Filter概述及快速入门Filter概述:概念:Filter表示过滤器,是JavaWeb三大组件之一JavaWeb三大组件:Servlet,Filter,Listener过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能过滤器一般完成一些通用的操作:比如:权限控制,统一编码处理,敏感字符处理等......
  • Apple 的 plist 编辑器入门指南:基础操作与高级功能详解
     PlistEditPro是一款专为macOS编写的最高级属性列表Plist编辑器。对于Mac和IOS开发人员来说,编写应用程序时必须编辑各种列表文件。PlistEditPro通过提供直观且功能强大的界面,使编辑这些文件更加容易。它不仅能够复制和粘贴或拖放属性列表数据,还提供强大的搜索和替换功能,并......
  • python入门编程1
    最近迅速看了以下推荐的两本Python入门书籍:1.Python编程:从入门到实践2.Python编程快速上手——让繁琐工作自动化两本书的前半部分内容相似,都是些简单的基础知识,后半部分是些实践项目,但是从我的感受来看,项目内容组织的还是有点大,比如其中一个web项目开发,对于新手来说,里面包含的......
  • .NET Web入门到高级路线(新版本)
    .NETWeb入门到高级路线C#基础语法.NETCore基础知识ASP.NETCore基础知识概述BlazorASP.NETCore官方文档ORMFreeSqlEntityFrameworkCoreDapperSqlSugar关系型数据库SQLServerMySQLPostgreSQL中间件MongoDBRedisRabbitMQActiveMQSkyWalkingC......
  • Vue2入门之超详细教程七-事件处理
    1、简介事件的基本使用:(1)使用v-on:xxx或者@xxx绑定事件,其中xxx是事件名(2)事件的回调需要配置在methods对象中,最终会在vm上(3)methods中配置的函数,不要用箭头函数!否则this就不是vm了(4)methods中配置的函数,都是被Vue所管理的函数,this指向是Vm或......
  • idea - 在Terminal 交叉编译golang 解决
    1. 背景在ideaTerminal栏执行gobuildxxx.go打包的是exe文件交叉编译配置SETCGO_ENABLE=0SETGOOS=linuxSETGOARCH=arm64gobuildxxx.go发现编译文件仍然是exe2.解决需要切换为cmd指令执行cmd然后在执行交叉编译即可 ......
  • 基于golang实现ssh terminal
    基于golang实现sshterminal实现sshterminal相对比较容易,简单来说需要初始化ssh连接后,通过ssh连接创建一个会话,定义好输入、输出,然后再请求pty(需要定义好modes)与远程会话进行关联。packagemainimport( "fmt" "github.com/gin-gonic/gin" "github.com/gorilla/websocket"......
  • SpringSecurity从入门到精通:如何查看具体的过滤器&入门案例认证流程图讲解
    如何查看具体的过滤器  入门案例认证流程图讲解 概念速查:Authentication接口:它的实现类,表示当前访问系统的用户,封装了用户相关信息AuthenticationManager接口:定义了认证Authentication的方法UserDetailsService接口:加载用户特定数据的核心接口,里面定义了......
  • Spring Security从入门到精通:入门案例准备工作&入门案例引入Spring Secuirity
    入门案例准备工作我们先要搭建一个简单的SpringBoot工程设置父工程添加依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><......