Contents
17. Structs(类)¶
17.1. Python¶
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2020/4/21 13:50
# filename: sample1.py
from __future__ import division
from math import sqrt
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def distance(point1, point2):
return sqrt(point1.x * point2.x + point1.y * point2.y)
p1 = Point(1, 3)
p2 = Point(2, 4)
print(distance(p1, p2)) # 3.74165738677
17.2. Go¶
package main
import (
"fmt"
"math"
)
type Point struct {
x float64
y float64
}
func distance(point1 Point, point2 Point) float64 {
return math.Sqrt(point1.x*point2.x + point1.y*point2.y)
}
//由于结构会自动复制,
//最好将其作为指针传递。
func distance_better(point1 *Point, point2 *Point) float64 {
return math.Sqrt(point1.x*point2.x + point1.y*point2.y)
}
func main() {
p1 := Point{
x: 1,
y: 3,
}
p2 := Point{
x: 2,
y: 4,
}
fmt.Println(distance(p1, p2)) //3.7416573867739413
fmt.Println(distance_better(&p1, &p2)) //3.7416573867739413
}