編輯:關於android開發
- type division struct {
- arg int
- str string
- }
- func (e *division) Error() string {
- return fmt.Sprintf("%d %s", e.arg, e.str)
- }
- func divideCheck(arg1, arg2 int) (error) {
- if arg2 == 0 {
- return &division{arg1, "can't divided by 0"}
- }
- return nil
- }
- package main
- import "fmt"
- func divideCheck(arg1, arg2 int) (error) {
- if arg2 == 0 {
- return fmt.Errorf("%d can't divided by 0", arg1)
- }
- return nil
- }
- func main() {
- var err error
- err = divideCheck(4, 2)
- if err != nil {
- fmt.Println(err)
- return
- }
- err = divideCheck(8, 0)
- if err != nil {
- fmt.Println(err)
- return
- }
- }
這麼做代碼就優雅多了,並且在每次檢查前都判斷內部狀態是否已經出錯,出錯就馬上返回,幾乎沒有性能損失。
- package main
- import "fmt"
- type division struct {
- err error
- }
- func (this *division)DivideCheck(arg1, arg2 int) {
- if this.err != nil {
- return
- }
- if arg2 == 0 {
- this.err = fmt.Errorf("%d can't divided by 0", arg1)
- return
- }
- }
- func (this *division)Err() error {
- return this.err
- }
- func main() {
- d := new(division)
- d.DivideCheck(4, 2)
- d.DivideCheck(8, 0)
- if d.Err() != nil {
- fmt.Println(d.Err())
- }
- }
ImageSwitcher的簡單使用, 測試代碼: activity_main.xml: <?xml version=1.0 encoding=ut
解決 Could not find com.android.tools.build:gradle 問題,couldnotfindntldr今天拉同事最新的代碼,編譯時老是
Android Material Design 兼容庫的使用,androidmaterialAndroid Material Design 兼容庫的使用 mecury
【Android】由淺到深理解AIDL 一、 Binder概述 1.1 為什麼要用binder 出於安全性、穩定性和內存管理的考慮,Android的應用和系統服務運行在分
我的Android進階之旅------)Android編譯錯誤java.