Golang 入门基础(三) - 内置数据类型(上)
回到文章目录
指针类型
定义指针
123var a int = 10var p *int = &app := &a
空指针
默认值,空指针的值为 nil 。
访问指针
使用 *ptr 访问值,地址无法访问将产生运行错误。
结构体使用 name.attr 访问元素,在 Golang 中可以使用 ptr.attr 通过指针访问元素(Clang 是 ptr->attr)。
结构体类型
定义结构体
具名结构体
123456789type Book struct { name string author string}var a Book // 定义默认结构体var b = Book{"Golang 入门经典", "Unknown"} // 全部初始化var c = Book{name: "C++ 入门指南"} // 局部初始化d := Book{name: "鸟哥的 Linux 私房菜" ...
Golang 入门基础(二) - 变量与常量
回到文章目录
定义
var 定义变量
12345678var a int // var 定义变量var a int = 10 // var 设置初值var a = 10 // var 自动解析类型 (但不能解析为 int8 等)var a, b int = 1, 2 // var 定义同类型多变量var ( a int s string) // var 定义多变量
12345var ( a, b int = 1, 2 s, ss string pi = 3.1415926535 // float64)
const 定义常量
12345678const a int = 10 // 必须初始化const a = 10 // 自动解析常量类型const a, b int = 1, 2 // 定义同类型多常量const ( a int = 10 s string = "Hello World!" pi float64 = 3.1415926535)
:= 自动变量
123a := 1 // var a i ...
Golang 入门基础(一) - Get Start
回到文章目录
这是一个相对轻松的开始~
一个 Golang 主程序必须包含三个部分:包名、导包、主函数。在主函数和导包之间可能需要加上一些全局变量和函数的定义。
1234567package mainimport "fmt"func main() { fmt.Println("Hello World!")}
package main 定义包名,如果包名为 main ,其应该包含 func main() {} 否则不该包含。
import 有两种用法:
1import "fmt"
1234import ( "fmt" "time")
Golang 入门基础(零) - 前言
前言
为什么?
学习一个语言前,首先需要搞清楚,为什么我们需要学这门语言,它有什么优势?
Golang 提供了编译和直接运行的方式, 保证了静态编译语言的安全和性能。(C/C++)
Golang 提供包的概念,下载和安装非常方便,保证了动态语言的高效开发和维护(Python)
Golang 引入垃圾回收机制(GC),开发者可以更加关注代码的其他问题。
Golang 天然支持并发,包括:goroutine 轻量级线程、channel 管道。
Golang 创新引入:slice 切片、defer 延迟执行。
实际上,Golang 最大的优势应该是天然支持并发,用它写的服务程序可以具有更高的性能,这是其他所有编程语言都无法媲美的。
前置知识
Clang :事实上 Golang 和 C++ 是由同一作者发明的,并在其基础上改进和精简,因此 Golang 和 Clang 在语法方面具有高度的相似性,本文假设你已经掌握了 C 语言,文中未提及的部分可以参考 Clang 。
多线程与并发 :Golang 最大的优势就是原生支持并发,本文将使用大量的篇幅介绍并发相关的语法,并提供一些简单的示例, ...
Golang 安装笔记
Go 安装
下载
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
安装
安装路径:D:\Programs\Golang\Go(根据自己习惯)
配置环境变量(注意: 安装时自动配置了环境变量,如果与需要的不同,请务必手动删除)
PATH = D:\Programs\Golang\Go\bin
GOROOT = D:\Programs\Golang\Go
GOPATH = D:\Programs\Golang\GoPath (最好将 GOROOT 和 GOPATH 分开)
更改配置(命令行输入)
go env -w GO111MODULE=on(默认值 off)
go env -w GOPROXY=https://goproxy.cn,direct(配置代理,默认值 https://proxy.golang.org,direct)
Visual Studio Code 安装
到官网下载对应的 VSC 版本。
Download Visual Studio Cod ...
Github + Hexo + Butterfly 建站笔记(五) - Gitalk 评论系统
回到文章目录
关于 Gitalk 配置可以参考官方文档
Butterfly 安裝文檔(四) 主題配置-2 | Butterfly
gitalk/readme-cn
创建 Github Application
首先在 Github 的个人设置最下方找到 Developer Settings 。
选择 OAuth Apps 并注册新的 OAuth Applications 。
填写相关信息,请在 Authorization callback URL 填写你的个人网址。之后进入新的界面点击 Generate a new client secret 。Client ID 和 Client Secret 后面会用到。
配置 Butterfly 配置文件
在此之前你需要在 Github 创建一个仓库用于存放评论,我的仓库名为 jamhus-tao.github.io.gitalk ,这样可以防止混淆。
在 comments.use 增加 gitalk ,然后配置下面的 gitalk 选项。
12345678910comments: # Up to two comm ...
Github + Hexo + Butterfly 建站笔记(四) - PicGo 图床配置
回到文章目录
2023 年 8 月 26 日更新,也许是更好的解决方案最近发现我的 PicGo 经常莫名寄,刚开始以为是 Github 不稳定,换了其他平台也寄。
这里再推荐一个免费的专业图床平台 sm.ms,你可以直接在浏览器上传而无需依赖 PicGo。
为什么我们需要图床?
因为我们的博客上传到云端后,会丢失其中图片在本地的链接。图床是一个在云端存储图片的平台,使用图床可以比较好的解决这个问题。
这里我们将使用 PicGo + Github 实现图床,其中 PicGo 只是一个本地的图床管理工具,而 Github 为其提供存储。
PicGo 官方文档
创建 Github Tokens
首先在 Github 的个人设置最下方找到 Developer Settings 。
选择 Personal access tokens 下的 Tokens (classic) 选项,然后 Generate new token 。
在 Note 中为这条 token 备注,并且设置 Expiration 到期时间,可以设置为无限期,然后这条 token 需要开启所有 repo 权限。 ...
Github + Hexo + Butterfly 建站笔记(三) - Butterfly 主题
回到文章目录
你用的还是 Hexo 默认的主题,现在我们来切换更好看的主题。
Butterfly - A Simple and Card UI Design theme for Hexo
首先,由于我时间有限,本文只能教学一些简单的配置,希望根据本文的思路,你可以逐渐找到跟着官网配置的方法。许多你需要解决的问题可能都在官网可以找到解决方案。
安装 Butterfly
123cd {你的博客目录}/{你的博客名称}git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterflynpm install hexo-renderer-pug hexo-renderer-stylus --save
更改 _config.yml 主题配置
1234# Extensions## Plugins: https://hexo.io/plugins/## Themes: https://hexo.io/themes/theme: landscap ...
Github + Hexo + Butterfly 建站笔记(二) - Hexo 部署
回到文章目录
Hexo 常用命令
生成静态网页文件到 public 目录。
1hexo generate
启动本地预览服务器(实时更新)。
1hexo server # http://localhost:4000 (https 不可用)
部署服务器到远端。
1hexo deploy # 即将介绍
新建文章到 source/_posts 目录(可以手动新建)。
1hexo new {文章名称} # 可以手动新建,但注意 Markdown 头部声明
新建页面到 source 目录(可以手动新建)。
1hexo new page {页面名称}
清除 hexo 博客目录缓存与 public 目录,用于修复未知问题。
12hexo clear# hexo generate # 别忘了重新生成
注:很多命令都可以直接用首字母简化表示。
配置博客信息
前面讲到 _config.yml 文件用于配置博客信息。这里我们打开 _config.yml,仅对于我们关心的基本内容进行讲解。
详细内容见官方文档:_config.yml
...
Github + Hexo + Butterfly 建站笔记(一) - Hexo 启动!
回到文章目录
安装 Node.js
Hexo 框架依赖于 Node.js 所以我们需要先安装 Node.js。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JavaScript 可以脱离浏览器运行在服务器端。npm(node package manager)是 Node.js 的包管理器,用于 node 插件管理(包括安装、卸载、管理依赖等),这里需要使用 nmp 下载 Hexo 框架。
前往官网下载 Node.js 长期维护版,按照指引完成安装。
Node.js 官网下载
命令行 检查 `Node.js` 安装。
之后的操作都将使用命令行完成。
123node -v # 查看 node 版本号,我的版本:V18.17.0npm -v # 查看 nmp 版本号,我的版本:V9.6.7npm
安装 Hexo 框架
12npm install -g hexo-clihexo -v # 查看 hexo 版本号,我的版本:V4.3.1
初始化个人博客
此操作后你的个人博客将称为你的默认博客目录,之后的所有 hexo ...