<commit_before>```toml
title = "Go语言学习记录"
slug = "learning-go"
desc = "Go语言学习记录"
date = "2017-03-24 22:26:16"
update_date = "2017-03-24 22:26:16"
author = "tcc"
thumb = ""
draft = false
tags = ["Go"]
```
1. 在 `fmt.Printf` 中使用下面的说明符来打印有关变量的相关信息：<br>
    - `%+v` 打印包括字段在内的实例的完整信息<br>
    - `%#v` 打印包括字段和限定类型名称在内的实例的完整信息 <br>
    - `%T` 打印某个类型的完整说明<br>
2. Go 程序的执行（程序启动）顺序如下：
      1.按顺序导入所有被 main 包引用的其它包，然后在每个包中执行如下流程：
      2.如果该包又导入了其它的包，则从第一步开始递归执行，但是每个包只会被导入一次。
      3.然后以相反的顺序在每个包中初始化常量和变量，如果该包含有 init 函数的话，则调用该函数。
      4.在完成这一切之后，main 也执行同样的过程，最后调用 main 函数开始执行程序。<commit_msg>go学习记录<commit_after>```toml
title = "Go语言学习记录"
slug = "learning-go"
desc = "Go语言学习记录"
date = "2017-03-24 22:26:16"
update_date = "2017-03-24 22:26:16"
author = "tcc"
thumb = ""
draft = false
tags = ["Go"]
```
1. 在 `fmt.Printf` 中使用下面的说明符来打印有关变量的相关信息：<br>
    - `%+v` 打印包括字段在内的实例的完整信息<br>
    - `%#v` 打印包括字段和限定类型名称在内的实例的完整信息 <br>
    - `%T` 打印某个类型的完整说明
2. Go 程序的执行（程序启动）顺序如下：<br>
      1.按顺序导入所有被 main 包引用的其它包，然后在每个包中执行如下流程：<br>
      2.如果该包又导入了其它的包，则从第一步开始递归执行，但是每个包只会被导入一次。<br>
      3.然后以相反的顺序在每个包中初始化常量和变量，如果该包含有 init 函数的话，则调用该函数。<br>
      4.在完成这一切之后，main 也执行同样的过程，最后调用 main 函数开始执行程序。
3. 存储在常量中的数据类型只可以是布尔型、数字型（整数型、浮点型和复数）和字符串型。
{'fraction_non_alphanumeric': 0.15993404781533388, 'fraction_numerical': 0.05688375927452597, 'mean_word_length': 4.468468468468468, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3274127', 'n_tokens_mistral': 903, 'n_tokens_neox': 1012, 'n_words': 91}