基础构造函数
题目描述
定义结构体
Student,包含字段:
- 姓名 name string
- 年龄 age int
- 成绩 score float64
实现构造函数
NewStudent(name string, age int, score float64) *Student,要求:
- 年龄必须 ≥ 0,否则默认设为 0
- 成绩必须在 0~100 之间,否则默认设为 0
- 返回结构体指针
在 main 中创建对象并打印信息。
输出示例
&{name:小明 age:18 score:90}
实现代码
Go
package main
import "fmt"
type Student struct {
name string
age int
score float64
}
func NewStudent(name string, age int, score float64) *Student {
if age < 0 {
age = 0
}
if score < 0 || score > 100 {
score = 0
}
return &Student{
name: name,
age: age,
score: score,
}
}
func main() {
stu := NewStudent("小明", 18, 90)
fmt.Printf("%+v\n", stu)
}
带默认值的构造函数
题目描述
定义结构体
Car:
- 品牌 brand
- 颜色 color
- 最高时速 maxSpeed
实现两个构造:
NewCar(brand, color string, maxSpeed int) *CarNewDefaultCar() *Car:默认品牌为 "大众",颜色 "白色",时速 120创建默认车对象并打印。
输出示例
&{brand:大众 color:白色 maxSpeed:120}
实现代码
Go
package main
import "fmt"
type Car struct {
brand string
color string
maxSpeed int
}
func NewCar(brand, color string, maxSpeed int) *Car {
return &Car{brand, color, maxSpeed}
}
func NewDefaultCar() *Car {
return NewCar("大众", "白色", 120)
}
func main() {
car := NewDefaultCar()
fmt.Printf("%+v\n", car)
}