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

微网站模板在线制作博客类网站怎么做

微网站模板在线制作,博客类网站怎么做,手机版网页游戏,( )是网站可以提供给用户的价值目录标题 一、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 Files1. Reading Files 读取文件2. Using absolute file path 使用绝对路径3. Passing the file path as a command line flag 将文件路径作为命令行标志传递4. Reading a file in small chunks5. 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 ( fmtreflect)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 ( fmtreflect)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 ( fmtreflect)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 ( fmtreflect)func main() { a : 56x : reflect.ValueOf(a).Int()fmt.Printf(type:%T value:%v\n, x, x)b : Naveeny : 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 ( fmtreflect)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 (fmtos)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 GO2. Using absolute file path 使用绝对路径 package mainimport (fmtos)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 GO3. Passing the file path as a command line flag 将文件路径作为命令行标志传递 package main import ( flagfmt)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 (bufioflagfmtiologos)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 ( bufioflagfmtlogos)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://www.w-s-a.com/news/136642/

相关文章:

  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网
  • 网站空间支持什么程序工作服款式
  • 网站单页品牌网站建设 蝌蚪5小
  • 怎么做外贸网站需注意哪些做电脑系统的网站
  • 网站建设介绍推广用语河南网站优化外包服务
  • 课程网站模板贵州省城乡与建设厅网站
  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用
  • 网站建设公司排名前十做网站的最终目的
  • 选择网站开发公司的标准中国网站建设市场规模
  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏