47 lines
658 B
Go
47 lines
658 B
Go
|
// Copyright 2014 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package structs
|
||
|
|
||
|
type S struct {
|
||
|
X, Y float64
|
||
|
unexported bool
|
||
|
}
|
||
|
|
||
|
func (s *S) Sum() float64 {
|
||
|
return s.X + s.Y
|
||
|
}
|
||
|
|
||
|
func (s *S) Identity() (*S, error) {
|
||
|
return s, nil
|
||
|
}
|
||
|
|
||
|
func Identity(s *S) *S {
|
||
|
return s
|
||
|
}
|
||
|
|
||
|
func IdentityWithError(s *S) (*S, error) {
|
||
|
return s, nil
|
||
|
}
|
||
|
|
||
|
type (
|
||
|
S2 struct{}
|
||
|
I interface {
|
||
|
M()
|
||
|
}
|
||
|
)
|
||
|
|
||
|
func (s *S2) M() {
|
||
|
}
|
||
|
|
||
|
func (_ *S2) String() string {
|
||
|
return ""
|
||
|
}
|
||
|
|
||
|
// Structs is a struct with the same name as its package.
|
||
|
type Structs struct{}
|
||
|
|
||
|
func (_ *Structs) M() {
|
||
|
}
|