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

网页设计与网站建设办网站怎么赚钱

网页设计与网站建设,办网站怎么赚钱,wordpress下载安装,互联网营销的五个手段本节内容是面向对象的核心与基础#xff0c;很重要。 注意#xff1a;由于导包语句已经在19讲#xff08;笔记19#xff1a;面向对象的引入#xff09;展示过了#xff0c;所以这里就不展示了。 一、方法的定义与细节 方法是与特定类型#xff08;通常是结构体#x…本节内容是面向对象的核心与基础很重要。 注意由于导包语句已经在19讲笔记19面向对象的引入展示过了所以这里就不展示了。 一、方法的定义与细节 方法是与特定类型通常是结构体关联的函数。方法可以操作该类型的实例并且可以使用其字段。定义方法时需要指定一个接收者receiver这使得方法能够访问该接收者的属性。语法如下 func (receiver TypeName) MethodName(parameters) returnList {// 方法体 }receiver是接收者的名称类型是你想要关联的自定义类型通常是结构体。 MethodName是方法的名称。 parameters是方法接受的参数。 returnList是返回值类型列表。 首先在utils中定义一个结构体和一个方法 type Circle struct {Radius float64 }// 定义一个方法计算圆的面积 // 1. 方法中参数名字随便起 // 2. 方法 Area 和结构体 Circle绑定必须在同包中定义 func (c Circle) Area() float64 {return 3.14 * c.Radius * c.Radius }然后在main中调用 func main() {// 创建一个 Circle 实例circle : utils.Circle{Radius: 5}// 调用方法area : circle.Area()// 输出结果fmt.Printf(Area: %.2f\n, area) }一些细节 1.如果其他类型的变量调用area一定会报错。 2.结构体对象传入方法area中属于值传递和参数传递一致。 3.receiver的类型是你想要关联的自定义类型。 4.如果某个自定义类型实现了返回string名字为String()的方法如果是同包内调用s可以小写那么fmt包的Printf或Println函数打印该类型时会自动调用String()。 对于前两点首先在utils中定义另一个方法来演示值传递 // 定义一个方法演示值传递 func (c Circle) SetRadius(newRadius float64) {c.Radius newRadiusfmt.Printf(Inside Radius: %.2f\n, c.Radius) }然后在main文件中调用 type test struct {a int }func main() {// 创建一个 Circle 实例circle : utils.Circle{Radius: 5}// 调用方法area : circle.Area()fmt.Printf(Area: %.2f\n, area)// 1. 如果其他类型变量调用 area 一定会报错// 下面的代码将导致编译错误//t : test{}// t.area() // 这行会报错因为 radius 不是 Circle 类型// 2. 结构体对象传入方法 Area 中属于值传递circle2 : utils.Circle{Radius: 10}fmt.Printf(Old Radius: %.2f\n, circle2.Radius)// 调用 SetRadius 方法尝试修改半径circle2.SetRadius(15)fmt.Printf(New Radius: %.2f\n, circle2.Radius) // 仍然是 10 }OK如果我就想在SetRadius内改变radius呢那肯定是用指针了但方法比数组指针简单将SetRadius中的Circle前加上*即可因为编译器会自动处理结构体指针所以在main中的代码无需改动 对于第三点receiver的类型是你想要关联的自定义类型这也就是说基本类型不能作为方法中的接收类型读者可自行尝试这里不做赘述。 对于第四点首先在utils内定义String() func (p Person) String() string {str : fmt.Sprintf(name%s,age%v,sex%s, p.Name, p.Age, p.Sex)return str }然后在main中调用 func main() {p : utils.Person{Name: 李华, Age: 30, Sex: 女}fmt.Printf(%v\n, p) // 使用格式化字符串fmt.Println(p) // 直接打印 }这个String方法呢也是定义结构体时常用的以便输出结构体信息。这里我提一个问题如果定义了Person的别名打印其实例还会自动调用String()吗验证很简单读者可自行尝试这里不做赘述。 二、方法与函数的区别 方法函数和其他类型的关系绑定到特定类型独立于任何类型语法func (receiver ReceiverType) MethodName(parameters) returnTypefunc FunctionName(parameters) returnType调用方式通过类型的实例调用 instance.MethodName()直接调用 FunctionName()作用域可以访问绑定类型的字段只能访问传入的参数指定类型是否需要和传入类型一致不需要可以随意传入值或指针需要 关于最后一点首先在utils中定义两个接收者不同的方法 // 方法接收者为值类型 func (p Person) PValue() {fmt.Println(Hello, my name is, p.Name) }// 方法接收者为指针类型 func (p *Person) PPointer() {fmt.Println(Hello, my name is, p.Name) }然后在main文件中调用 // 函数必须传入 Person 类型 func PrintPerson(p utils.Person) {fmt.Println(Persons name:, p.Name) }func main() {// 创建值类型和指针类型的实例p1 : utils.Person{Name: 李华}p2 : utils.Person{Name: 张三}p1.PPointer() // 调用接收者为指针的方法传入值类型PrintPerson(p1) // 调用函数传入值类型p2.PValue() // 调用接收者为值类型的方法传入指针PrintPerson(*p2) // 调用函数传入解引用的指针 }程序输出如下 Hello, my name is 李华 Persons name: 李华 Hello, my name is 张三 Persons name: 张三
http://www.w-s-a.com/news/742963/

相关文章:

  • 手机搭建网站工具网站搜索引擎优化的基本内容
  • 网站快速排名二手交易网站开发技术路线
  • 官方网站开发公司施工企业会计王玉红课后答案
  • 网站建设能用手机制作吗网站建设所需物资
  • 阜阳做网站的公司阳江招聘网最新消息
  • 织梦可以做哪些类型型网站wordpress 融资
  • 建设银行手机银行官方网站下载安装腾讯企点账户中心
  • 品牌设计网站有哪些商务网站建设平台
  • 新增网站备案时间什么是软件外包产业
  • 张家界做网站买了网站模版怎么做
  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站
  • 网站设计确认函合肥做网站维护的公司
  • 小说网站推荐网站开发语言怎么查
  • 网页制作基础教程慕课版电子版那种登录才能查看的网站怎么做优化
  • 制作网站用的域名网站域名注册信息查询
  • 公司域名查询官方网站女教师遭网课入侵直播录屏曝
  • 网站开发社交网络功能的作用腾讯公司网站
  • 网站建设需要微信账号和密码网站建设工作汇报
  • 国家城乡住房和建设部网站西安私人网站
  • 天津高端网站定制seo实战教程
  • 网站文章怎么做才能被快速收录网站备案核验系统
  • 子网站建设方案l建设银行网站