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

做网站组织架构做网站需要跟客户了解什么

做网站组织架构,做网站需要跟客户了解什么,建设网app下载安装,wordpress设置视频图片不显示我们经常选择一个方法#xff0c;并且在同一个表达式里执行#xff0c;比如常见的p.Distance()形式#xff0c;实际上 将其分成两步来执行也是可能的。p.Distance叫作“选择器”#xff0c;选择器会返回一个方法值-一 个将方法(Point.Distance)绑定到特定接…        我们经常选择一个方法并且在同一个表达式里执行比如常见的p.Distance()形式实际上 将其分成两步来执行也是可能的。p.Distance叫作“选择器”选择器会返回一个方法值-一 个将方法(Point.Distance)绑定到特定接收器变量的函数。这个函数可以不通过指定其接收器 即可被调用即调用时不需要指定接收器(译注因为已经在前文中指定过了)只要传入函数 的参数即可 p : Point{1, 2} q : Point{4, 6}distanceFromP : p.Distance // method value fmt.Println(distanceFromP(q)) // 5 var origin Point // {0, 0} fmt.Println(distanceFromP(origin)) // 2.23606797749979, sqrt(5)scaleP : p.ScaleBy // method value scaleP(2) // p becomes (2, 4) scaleP(3) // then (6, 12) scaleP(10) // then (60, 120) 在一个包的API需要一个函数值、且调用方希望操作的是某一个绑定了对象的方法的话方 法值会非常实用(_真是绕)。举例来说下面例子中的time.AfterFunc这个函数的功能是在 指定的延迟时间之后来执行另一个函数。且这个函数操作的是一个Rocket对象r type Rocket struct { /* ... */ } func (r *Rocket) Launch() { /* ... */ } r : new(Rocket) time.AfterFunc(10 * time.Second, func() { r.Launch() }) 直接用方法值传入AfterFunc的话可以更为简短 time.AfterFunc(10 * time.Second, r.Launch) //直接省略掉了上面那个例子里的匿名函数 和方法值相关的还有方法表达式。当调用一个方法时与调用一个普通的函数相比我们必 须要用选择器(p.Distance)语法来指定方法的接收器。 当T是一个类型时方法表达式可能会写作T.f或者(*T).f会返回一个函数值这种函数会将 其第一个参数用作接收器所以可以用通常(译注不写选择器)的方式来对其进行调用 p : Point{1, 2} q : Point{4, 6}distance : Point.Distance // method expression fmt.Println(distance(p, q)) // 5 fmt.Printf(%T\n, distance) // func(Point, Point) float64scale : (*Point).ScaleBy scale(p, 2) fmt.Println(p) // {2 4} fmt.Printf(%T\n, scale) // func(*Point, float64) // 译注这个Distance实际上是指定了Point对象为接收器的一个方法func (p Point) Distance() // 但通过Point.Distance得到的函数需要比实际的Distance方法多一个参数 // 即其需要用第一个额外参数指定接收器后面排列Distance方法的参数。 // 看起来本书中函数和方法的区别是指有没有接收器而不像其他语言那样是指有没有返回值。当你根据一个变量来决定调用同一个类型的哪个函数时方法表达式就显得很有用了。你可 以根据选择来调用接收器各不相同的方法。下面的例子变量op代表Point类型的addition或者 subtraction方法Path.TranslateBy方法会为其Path数组中的每一个Point来调用对应的方法 type Point struct{ X, Y float64 }func (p Point) Add(q Point) Point { return Point{p.X q.X, p.Y q.Y} } func (p Point) Sub(q Point) Point { return Point{p.X - q.X, p.Y - q.Y} }type Path []Pointfunc (path Path) TranslateBy(offset Point, add bool) {var op func(p, q Point) Pointif add {op Point.Add} else {op Point.Sub}for i : range path {// Call either path[i].Add(offset) or path[i].Sub(offset).path[i] op(path[i], offset)} }
http://www.dnsts.com.cn/news/267353.html

相关文章:

  • 孝感 网站建设网站策划书包含的内容
  • 工商银行与建设银行网站对比wordpress用户信息修改
  • 做单页网站需要做什么网站等比例缩放
  • 青海省住房和城乡建设厅网站首页本机号码一键登录
  • jsp做的当当网站的文档wordpress关键词插件吗
  • 品牌网站建设预算网站界面设计稿
  • flash个人网站欣赏亚马逊雨林地图
  • 网站开发与维护岗位说明书网站推广软件
  • 营销网站建设公司地址宝安新桥h5网站建设步骤
  • 京东建站模板江苏营销型网站策划
  • 广告设计用什么软件做网站seo排名优化工具在线
  • 营销型网站建设域名徐州建站公司哪家好
  • 长春有几个火车站红酒网站建设策划书
  • Wordpress垂直类目站模版网站和新媒体建设管理办法
  • 怎么屏蔽ip段访问网站建站公司怎么拓客
  • 互动创意网站软件开发文档包括什么内容
  • 学生网站建设的总结与评价合作网站开发
  • 群晖nas做网站服务器wordpress调试工具
  • 青岛快速建站模板wordpress安装只有英文版
  • 7个免费的ui素材网站50强网站建设公司
  • 郑州承接各类网站建设化工行业网站模板
  • 网站建设图片怎么调合作客户北京网站建设
  • 做中国菜的外国网站广州网站建设公司乐云seo
  • 可以直接用php做网站吗俄语网站都哪些
  • 手机如何访问电脑做的asp网站如何成立一个房产网站
  • 成都美食网站设计论文做网站为什么要购买空间
  • 建筑模板尺寸及价格电子商务seo
  • 深圳建网站哪家公司好个人做网站公司
  • 高端网站设计图片北京网站建设最便宜的公司哪家好
  • 安康市网站建设公司做公司子网站的请示报告