Go值方法 & 指针方法


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func main() {
28     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
29     fmt.Println("ok1", ok1)
30
31     _, ok2 := interface{}(SortableStrings{}).(Sortable)
32     fmt.Println("ok2", ok2)
33 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
33     fmt.Println("ok1", ok1)
34
35     _, ok2 := interface{}(SortableStrings{}).(Sortable)
36     fmt.Println("ok2", ok2)
37 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self *SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
33     fmt.Println("ok1", ok1)
34
35     _, ok2 := interface{}(SortableStrings{}).(Sortable)
36     fmt.Println("ok2", ok2)
37 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self *SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
33     fmt.Println("ok1", ok1)
34
35     _, ok2 := interface{}(&SortableStrings{}).(Sortable)
36     fmt.Println("ok2", ok2)
37 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self *SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     _, ok1 := interface{}(&SortableStrings{}).(sort.Interface)
33     fmt.Println("ok1", ok1)
34
35     _, ok2 := interface{}(&SortableStrings{}).(Sortable)
36     fmt.Println("ok2", ok2)
37 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self *SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     ss := SortableStrings{"2", "3", "1"}
33     ss.Sort()
34     fmt.Println("Sortable Strings", ss)
35     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
36     fmt.Println("ok1", ok1)
37
38     _, ok2 := interface{}(SortableStrings{}).(Sortable)
39     fmt.Println("ok2", ok2)
40
41     _, ok3 := interface{}(&SortableStrings{}).(sort.Interface)
42     fmt.Println("ok3", ok3)
43
44     _, ok4 := interface{}(&SortableStrings{}).(Sortable)
45     fmt.Println("ok4", ok4)
46 }


 1 package main
 2
 3 import (
 4     "fmt"
 5     "sort"
 6 )
 7
 8 type SortableStrings [3]string
 9
10 type Sortable interface {
11     sort.Interface
12     Sort()
13 }
14
15 func (self *SortableStrings) Len() int {
16     return len(self)
17 }
18
19 func (self *SortableStrings) Less(i, j int) bool {
20     return self[i] < self[j]
21 }
22
23 func (self *SortableStrings) Swap(i, j int) {
24     self[i], self[j] = self[j], self[i]
25 }
26
27 func (self *SortableStrings) Sort() {
28     sort.Sort(self)
29 }
30
31 func main() {
32     ss := SortableStrings{"2", "3", "1"}
33     ss.Sort()
34     fmt.Println("Sortable Strings", ss)
35     _, ok1 := interface{}(SortableStrings{}).(sort.Interface)
36     fmt.Println("ok1", ok1)
37
38     _, ok2 := interface{}(SortableStrings{}).(Sortable)
39     fmt.Println("ok2", ok2)
40
41     _, ok3 := interface{}(&SortableStrings{}).(sort.Interface)
42     fmt.Println("ok3", ok3)
43
44     _, ok4 := interface{}(&SortableStrings{}).(Sortable)
45     fmt.Println("ok4", ok4)
46 }

时间: 2024-10-12 17:42:31

Go值方法 & 指针方法的相关文章

表达式求值(二叉树方法/C++语言描述)(二)

表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储:同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法中一样的枚举类型TokenType: 1 typedef enum 2 { 3 BEGIN, 4 NUMBER, 5 OPERATOR, 6 LEFT_BRAC, 7 RIGHT_BRAC 8 } TokenType; 9 10 class Token 11 { 12 public: 13 TokenType _type; 14 union 15 { 16 c

指针方法完成字符串的复制

//指针方法完成字符串的复制 #include<stdio.h> void main() { void copy_string(char *from,char *to); char *fro,*t; char a[]="I am a teacher."; char b[]="You are a student."; printf("a=%s\nb=%s\n",a,b); fro=a;t=b; printf("\ncopy s

PHP去掉数组重复值二种方法实例

PHP两种去掉数组重复值的方法,分别使用foreach方法和array_unique方法. 去除一个数组中的重复值,可以使用foreach方法,也可以使用array_unique方法. <?php $arrF = array(); $arrS = array(); $intTotal = 100; $intRand = 10; for($i=0; $i < $intTotal; $i++) { $arrF[] = rand(1, $intRand); $arrS[] = rand(1, $in

获取元素CSS值之getComputedStyle方法熟悉

一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,块头大的潜意识认为厉害,就不由得心生畏惧,退避三舍:小个子(

冒泡排序(数组方法和指针方法)

数组方法: #include<stdio.h> #include<stdlib.h> void bubble_sort(int arr[], int sz ) { int i = 0; int j = 0; for (j = 0; j < sz - 1; j++)    //决定最终排序出来需要冒多少次 { for (i = 0; i < sz - 1 - j; i++)    //决定一次冒泡需要比较多少次 { if (arr [i] < arr[i + 1])

Delphi(procedure&amp;procedure .... of object )函数指针与方法指针 .

Delphi(procedure&procedure .... of object )函数指针与方法指针 . delphiobjectbuttonintegerdelphi中经常见到以下两种定义 Type TMouseProc = procedure (X,Y:integer); TMouseEvent = procedure (X,Y:integer) of Object; 两者样子差不多但实际意义却不一样, TMouseProc只是单一的函数指针类型; TMouseEvent是对象的函数指针

带有参数和返回值的对象方法

# 按要求设计一个计算器类 # 属性: 无. 功能: 1) 返回派的值. 2) 计算一个整数的平方. 3) 计算两个整数的和. // 按要求设计计算器类 // 类的声明 #import <Foundation/Foundation.h> @interface Calculator : NSObject // 没有属性不用写大括号{} - (double) pi; - (int) square:(int)num; // 关于方法名的说明见下面 - (int) sumOfNum1:(int)num

WebQQ hash值获取 C#方法 2014/06/20

去年心血来潮,利用闲暇时间做了一个WebQQ的桌面软件,基本功能实现之后,就放那儿了.webQQ的协议时常更新,导致有些参数加密的方法要跟着更新,今天群里一朋友提供了一份最新的WebQQ hash的js,我转成了C#的方法,记在这里,希望对正在做webqq的朋友有所帮助. js方法 p=getqqhsahs(b,j) { for (var a = j + "password error", i = "", E = [];;) if (i.length <= a

从客户端中检测到有潜在危险的Request.Form值的解决方法

描述:从客户端中检测到有潜在危险的Request.Form值的解决方法asp.net 2.0 通常解决办法将.aspx文件中的page项添加ValidateRequest="false"或者修改配置文件 <system.web> <pages validateRequest="false" > </pages> </system.web> 从客户端中检测到有潜在危险的Request.Form值的解决方法