Go基础_1_53 自定义结构体实现错误
Tutorial: Go初级
Category: Go
Published: 2026-04-07 13:58:26
Views: 21
Likes: 0
Comments: 0
package main
import (
"fmt"
"math"
)
type areaError struct {
msg string
radius float64
}
func (e *areaError) Error() string {
return fmt.Sprintf("error:半径,%.2f,%s", e.radius, e.msg)
}
func circleArea(radius float64) (float64, error) {
if radius < 0 {
return 0, &areaError{"半径是非法的", radius}
}
return math.Pi * radius * radius, nil
}
func main() {
radius := -3.0
area, err := circleArea(radius)
if err != nil {
fmt.Println(err)
if err, ok := err.(*areaError); ok {
fmt.Printf("半径是:%.2f\n", err.radius)
}
return
}
fmt.Println("圆形的面积是:", area)
}