当前位置: 首页 > news >正文

音乐建设网站网站关键词如何优化上首页

音乐建设网站,网站关键词如何优化上首页,wordpress文章上传不了,在线教育平台搭建目录标题 一、Reflection反射1. What is reflection? 什么是反射2. Inspect a variable and find its type 检查变量并找到它的类型3. Reflect.Type and reflect.Value 反射类型和值4. Reflect.Kind 查看底层种类5. NumField() and Field() methods 字段数量和索引值方法6. In…

目录标题

  • 一、Reflection反射
    • 1. What is reflection? 什么是反射
    • 2. Inspect a variable and find its type 检查变量并找到它的类型
    • 3. Reflect.Type and reflect.Value 反射类型和值
    • 4. Reflect.Kind 查看底层种类
    • 5. NumField() and Field() methods 字段数量和索引值方法
    • 6. Int() and String() methods 整型和字符型方法
    • 7. Complete Program 完整示例
  • 二、 Reading Files
    • 1. Reading Files 读取文件
    • 2. Using absolute file path 使用绝对路径
    • 3. Passing the file path as a command line flag 将文件路径作为命令行标志传递
    • 4. Reading a file in small chunks
    • 5. Reading a file line by line 逐行读取文件

一、Reflection反射

1. What is reflection? 什么是反射

	反射是Go中的高级主题之一,在Go语言中反射(reflection)是指在程序运行时动态地检查类型信息和操作对象的能力。通过反射,你可以在运行时获取类型的信息,访问和修改对象的字段和方法,以及动态地调用函数。 Go语言中的反射由reflect包提供支持。该包中的Type和Value类型提供了访问和操作类型和对象的方法。要使用反射,首先需要使用reflect.TypeOf()函数获取一个值的类型信息,或者使用reflect.ValueOf()函数获取一个值的反射对象。这些函数返回的类型对象或值对象包含了有关值的类型、字段、方法等信息。反射对象的常用方法包括:Type.Kind():返回类型的种类,如整数、字符串、结构体等。Type.Name():返回类型的名称。Type.Field(i int):返回结构体类型的第i个字段的反射对象。Type.NumField():返回结构体类型的字段数量。Value.Interface():将反射对象转换为普通的接口类型。Value.Kind():返回值的种类,如整数、字符串、结构体等。Value.String():返回值的字符串表示。Value.Field(i int):返回结构体类型值的第i个字段的反射对象。Value.NumField():返回结构体类型值的字段数量。Value.Method(i int):返回值的第i个方法的反射对象。Value.Call(args []Value):调用值对应的方法,传递参数并返回结果。通过使用这些方法,你可以在运行时检查和操作任意类型的对象。例如,你可以获取一个结构体类型的字段名和值,动态调用函数,或者创建新的对象。

2. Inspect a variable and find its type 检查变量并找到它的类型

        package mainimport ("fmt")type order struct {ordId      intcustomerId int}type employee struct {name    stringid      intaddress stringsalary  intcountry string}func createQuery(b order) string {i := fmt.Sprintf("insert into order values(%d, %d)", b.ordId, b.customerId)return i}func createQuerySet(b employee) string {i := fmt.Sprintf("insert into order values(%s, %d, %s, %d, %s)", b.name, b.id, b.address, b.salary, b.country)return i}func main() {a := 10fmt.Printf("%d, %T\n", a, a)b := order{171103,1006,}e := employee{"Like",1,"Shanghai",999999,"Minghang",}fmt.Println(createQuery(b))fmt.Println(createQuerySet(e))}// 10, int// insert into order values(171103, 1006)// insert into order values(Like, 1, Shanghai, 999999, Minghang)

3. Reflect.Type and reflect.Value 反射类型和值

        package mainimport (  "fmt""reflect")type order struct {  ordId      intcustomerId int}func createQuery(q interface{}) {  t := reflect.TypeOf(q)v := reflect.ValueOf(q)fmt.Println("Type ", t)fmt.Println("Value ", v)}func main() {  o := order{ordId:      456,customerId: 56,}createQuery(o)}// Type  main.order  // Value  {456 56}  

4. Reflect.Kind 查看底层种类

        package mainimport (  "fmt""reflect")type order struct {  ordId      intcustomerId int}func createQuery(q interface{}) {  t := reflect.TypeOf(q)k := t.Kind()fmt.Println("Type ", t)fmt.Println("Kind ", k)}func main() {  o := order{ordId:      456,customerId: 56,}createQuery(o)}// Type  main.order  // Kind  struct  

5. NumField() and Field() methods 字段数量和索引值方法

        package mainimport (  "fmt""reflect")type order struct {  ordId      intcustomerId int}func createQuery(q interface{}) {   if reflect.ValueOf(q).Kind() == reflect.Struct {	// struct == structv := reflect.ValueOf(q) 	// {456 56}fmt.Println("Number of fields", v.NumField())		// 2for i := 0; i < v.NumField(); i++ {fmt.Printf("Field:%d type:%T value:%v\n", i, v.Field(i), v.Field(i))}}}func main() {  o := order{ordId:      456,customerId: 56,}createQuery(o)}// Number of fields 2  // Field:0 type:reflect.Value value:456  // Field:1 type:reflect.Value value:56  

6. Int() and String() methods 整型和字符型方法

        package mainimport (  "fmt""reflect")func main() {  a := 56x := reflect.ValueOf(a).Int()fmt.Printf("type:%T value:%v\n", x, x)b := "Naveen"y := reflect.ValueOf(b).String()fmt.Printf("type:%T value:%v\n", y, y)}// type:int64 value:56  // type:string value:Naveen  

7. Complete Program 完整示例

        package mainimport (  "fmt""reflect")type order struct {  ordId      intcustomerId int}type employee struct {  name    stringid      intaddress stringsalary  intcountry string}func createQuery(q interface{}) {  if reflect.ValueOf(q).Kind() == reflect.Struct {t := reflect.TypeOf(q).Name()query := fmt.Sprintf("insert into %s values(", t)		// 输出传入的valuesv := reflect.ValueOf(q)		// 赋值vfor i := 0; i < v.NumField(); i++ {switch v.Field(i).Kind() {case reflect.Int:if i == 0 {query = fmt.Sprintf("%s%d", query, v.Field(i).Int())} else {query = fmt.Sprintf("%s, %d", query, v.Field(i).Int())}case reflect.String:if i == 0 {query = fmt.Sprintf("%s\"%s\"", query, v.Field(i).String())} else {query = fmt.Sprintf("%s, \"%s\"", query, v.Field(i).String())}default:fmt.Println("Unsupported type")return}}query = fmt.Sprintf("%s)", query)fmt.Println(query)return}fmt.Println("unsupported type")}func main() {  o := order{ordId:      456,customerId: 56,}createQuery(o)e := employee{name:    "Naveen",id:      565,address: "Coimbatore",salary:  90000,country: "India",}createQuery(e)i := 90createQuery(i)}//  insert into order values(456, 56)  //  insert into employee values("Naveen", 565, "Coimbatore", 90000, "India")  //  unsupported type  

二、 Reading Files

1. Reading Files 读取文件

        package mainimport ("fmt""os")func main() {contents, err := os.ReadFile("test.txt")if err != nil {fmt.Println("File reading error", err)return}fmt.Println("Contents os file:", string(contents))}// Contents os file: Hello World. Welcome to file handling in GO

2. Using absolute file path 使用绝对路径

        package mainimport ("fmt""os")func main() {contents, err := os.ReadFile("D:/Go/oop/test.txt")if err != nil {fmt.Println("File reading error", err)return}fmt.Println("Contents os file:", string(contents))}// Contents os file: Hello World. Welcome to file handling in GO

3. Passing the file path as a command line flag 将文件路径作为命令行标志传递

        package main  import (  "flag""fmt")func main() {  fptr := flag.String("fpath", "test.txt", "file path to read from")flag.Parse()contents, err := os.ReadFile(*fptr)if err != nil {fmt.Println("File reading error", err)return}fmt.Println("Contents of file: ", string(contents))}// Contents of file:  Hello World. Welcome to file handling in GO.

4. Reading a file in small chunks

        package mainimport ("bufio""flag""fmt""io""log""os")func main() {targetPath := flag.String("targetPath", "test.txt", "file path to read from")flag.Parse() // 进行命令行参数的解析 将相应的值赋给标志变量targetPathf, err := os.Open(*targetPath) // err: nil  f: *os.Fileif err != nil {log.Fatal(err) // 将错误信息打印到标准错误输出}defer func() { // 延迟开启匿名函数一直循环 如果关闭文件时发送错误 log处理错误if err = f.Close(); err != nil {log.Fatal(err)}}()r := bufio.NewReader(f) // 创建了一个 bufio.Reader 对象r用于逐行读取文件内容b := make([]byte, 3)for {n, err := r.Read(b) //  r.Read(b) 方法读取文件内容 将读取到的内容存储在字节切片b中 并返回读取的字节数n和可能出现的错误errif err == io.EOF {  // 如果读取到文件末尾输出fmt.Println("Finished reading file")break}if err != nil { // 如果读取文件发生错误fmt.Println("Error %s reading files", err)break}fmt.Println(string(b[0:n])) // 输出切片内容 切片容量3}}// Hel  // lo  // Wor  // ld.  //  We// lco  // me  // to  // fil  // e h  // and  // lin  // g i  // n G  // o.  // finished reading file  

5. Reading a file line by line 逐行读取文件

        package mainimport (  "bufio""flag""fmt""log""os")func main() {  fptr := flag.String("fpath", "test.txt", "file path to read from")flag.Parse()f, err := os.Open(*fptr)if err != nil {log.Fatal(err)}defer func() {if err = f.Close(); err != nil {log.Fatal(err)}}()s := bufio.NewScanner(f)for s.Scan() {fmt.Println(s.Text())}err = s.Err()if err != nil {log.Fatal(err)}}// Hello World. Welcome to file handling in Go.  // This is the second line of the file.  // We have reached the end of the file.  

文章转载自:
http://congest.rwzc.cn
http://waesucks.rwzc.cn
http://tormentress.rwzc.cn
http://crashproof.rwzc.cn
http://ramal.rwzc.cn
http://smock.rwzc.cn
http://misarticulation.rwzc.cn
http://discontented.rwzc.cn
http://embalm.rwzc.cn
http://kaolinite.rwzc.cn
http://situate.rwzc.cn
http://hurlbutite.rwzc.cn
http://norethynodrel.rwzc.cn
http://insouciance.rwzc.cn
http://carinate.rwzc.cn
http://perverted.rwzc.cn
http://sulfonal.rwzc.cn
http://busier.rwzc.cn
http://junketing.rwzc.cn
http://ahistoric.rwzc.cn
http://trapezia.rwzc.cn
http://jackstone.rwzc.cn
http://divot.rwzc.cn
http://bernice.rwzc.cn
http://hast.rwzc.cn
http://coadapted.rwzc.cn
http://adult.rwzc.cn
http://childermas.rwzc.cn
http://inundatory.rwzc.cn
http://neocortex.rwzc.cn
http://affected.rwzc.cn
http://overstability.rwzc.cn
http://behest.rwzc.cn
http://ruelle.rwzc.cn
http://certificate.rwzc.cn
http://juxtapose.rwzc.cn
http://oberon.rwzc.cn
http://secularity.rwzc.cn
http://indifferentism.rwzc.cn
http://muumuu.rwzc.cn
http://composed.rwzc.cn
http://pleistocene.rwzc.cn
http://tussock.rwzc.cn
http://inwoven.rwzc.cn
http://favor.rwzc.cn
http://acerbity.rwzc.cn
http://giardiasis.rwzc.cn
http://subspeciation.rwzc.cn
http://blendword.rwzc.cn
http://demimondaine.rwzc.cn
http://transcode.rwzc.cn
http://corrival.rwzc.cn
http://immunoregulation.rwzc.cn
http://psittaceous.rwzc.cn
http://owi.rwzc.cn
http://somnambulate.rwzc.cn
http://mesocolon.rwzc.cn
http://inscient.rwzc.cn
http://interflow.rwzc.cn
http://qarnns.rwzc.cn
http://teilhardian.rwzc.cn
http://safeguard.rwzc.cn
http://saracen.rwzc.cn
http://verriculate.rwzc.cn
http://ringer.rwzc.cn
http://whity.rwzc.cn
http://tappoon.rwzc.cn
http://altaic.rwzc.cn
http://turbosphere.rwzc.cn
http://scroop.rwzc.cn
http://pacemaker.rwzc.cn
http://shoemaking.rwzc.cn
http://alkylate.rwzc.cn
http://serenity.rwzc.cn
http://ungalled.rwzc.cn
http://farmhouse.rwzc.cn
http://bushmaster.rwzc.cn
http://anastrophy.rwzc.cn
http://dentin.rwzc.cn
http://spurn.rwzc.cn
http://terrapin.rwzc.cn
http://paul.rwzc.cn
http://bichlorid.rwzc.cn
http://keeper.rwzc.cn
http://overdry.rwzc.cn
http://wipeout.rwzc.cn
http://outdoor.rwzc.cn
http://briber.rwzc.cn
http://lumumbist.rwzc.cn
http://duralumin.rwzc.cn
http://flysch.rwzc.cn
http://encurtain.rwzc.cn
http://presider.rwzc.cn
http://knuckleball.rwzc.cn
http://overwarm.rwzc.cn
http://untouchability.rwzc.cn
http://defensible.rwzc.cn
http://cordial.rwzc.cn
http://homochromatism.rwzc.cn
http://chloralism.rwzc.cn
http://www.hrbkazy.com/news/64107.html

相关文章:

  • 德阳企业品牌网站建设集客营销软件
  • 建设部网站监理公告新闻头条今日要闻国内
  • 网站建设百度云搜索引擎成功案例分析
  • 高端品牌网站建设建议上海服务政策调整
  • 电商小程序开发多少钱北京seo网络优化师
  • 做网站外国的免费建站软件
  • 如何用ps做网站网页站长工具友链检测
  • 创建全国文明城市宣传栏seo实战密码电子版
  • 网站建设开发软件湖南网站建设营销推广
  • 简单大气的成品网站google关键词优化
  • 山西大型网络营销设计多合一seo插件破解版
  • 对网站建设的讲话小程序如何推广运营
  • 最好的开发网站有哪些郑州百度分公司
  • 做网站要多少像素网站seo快速排名优化的软件
  • 北辰正方建设集团网站拉新推广怎么做
  • 网站建设项目申请佛山优化推广
  • 河池网络推广网络优化推广公司哪家好
  • 网站建设背景介绍百度快照
  • 中山企业网站建设公司18款免费软件app下载
  • 家装设计网站怎么做seo整站网站推广优化排名
  • 深圳手机建网站网站制作流程
  • app编写软件seo建站技术
  • 想通过做威客网站上的任务来赚创意营销策划方案
  • 怎么做新浪网站怎样打小广告最有效
  • 口碑好的网站建设公司哪家好谷歌应用商店app下载
  • 怎样做网站运营企业培训课程推荐
  • 未经网安备案开设网站的百度经验首页官网
  • 购物网页素材seo推广优化官网
  • 做公司网站大概多少钱韩国vs加纳分析比分
  • 电子商务网站如何设计营销渠道有哪些