52
52
53
53
``` go
54
54
func longFunctionDefinition (
55
- paramX int ,
56
- paramY string ,
57
- paramZ bool ,
55
+ paramX int ,
56
+ paramY string ,
57
+ paramZ bool ,
58
58
) (string , error ){}
59
59
60
60
// and
61
61
62
62
s := myStruct{
63
- field1: 1 ,
64
- field2: 2 ,
65
- field3: 3 ,
63
+ field1: 1 ,
64
+ field2: 2 ,
65
+ field3: 3 ,
66
66
}
67
67
```
68
68
69
69
DO NOT:
70
70
71
71
``` go
72
72
func longFunctionDefinition (paramX int , paramY string ,
73
- paramZ bool ,
73
+ paramZ bool ,
74
74
) (string , error ){}
75
75
76
76
// or
77
77
78
78
func longFunctionDefinition (
79
- paramX int , paramY string ,
80
- paramZ bool ,
79
+ paramX int , paramY string ,
80
+ paramZ bool ,
81
81
) (string , error ){}
82
82
83
83
// or
@@ -92,12 +92,12 @@ Example:
92
92
93
93
``` go
94
94
cfg := foo.Config {
95
- Site: " example.com" ,
96
- Out: os.Stdout ,
97
- Dest: c.KeyPair {
98
- Key: " style" ,
99
- Value: " well formatted" ,
100
- },
95
+ Site : " example.com" ,
96
+ Out : os.Stdout ,
97
+ Dest : c.KeyPair {
98
+ Key: " style" ,
99
+ Value: " well formatted" ,
100
+ },
101
101
}
102
102
```
103
103
@@ -176,7 +176,7 @@ DO NOT:
176
176
177
177
```go
178
178
func(int required, int optional) {
179
- if optional {...}
179
+ if optional {...}
180
180
}
181
181
```
182
182
@@ -186,15 +186,15 @@ DO:
186
186
type Option func (o *Object)
187
187
188
188
func Optional (string optional ) Option {
189
- return func (o *Object) {
190
- o.optional = optional
191
- }
189
+ return func (o *Object) {
190
+ o.optional = optional
191
+ }
192
192
}
193
193
194
194
func (int required , ...Options ) {
195
- for o := range Options {
196
- o (self)
197
- }
195
+ for o := range Options {
196
+ o (self)
197
+ }
198
198
}
199
199
```
200
200
@@ -217,22 +217,22 @@ DO NOT:
217
217
218
218
``` go
219
219
func badAtStuff (noData string ) error {
220
- if len (noData) == 0 {
221
- fmt.Printf (" Received no data" )
222
- }
220
+ if len (noData) == 0 {
221
+ fmt.Printf (" Received no data" )
222
+ }
223
223
224
- return errors.New (" received no data" )
224
+ return errors.New (" received no data" )
225
225
}
226
226
```
227
227
228
228
DO
229
229
230
230
``` go
231
231
func badAtStuff (noData string ) error {
232
- if len (noData) == 0 {
233
- return errors.New (" received no data" )
234
- }
235
- ...
232
+ if len (noData) == 0 {
233
+ return errors.New (" received no data" )
234
+ }
235
+ ...
236
236
}
237
237
```
238
238
@@ -253,21 +253,21 @@ func onError(err error) {
253
253
}
254
254
255
255
func ReadAsync (r io .Reader , onError ) {
256
- err := r ()
257
- if err != nil {
258
- onError (err)
259
- }
256
+ err := r ()
257
+ if err != nil {
258
+ onError (err)
259
+ }
260
260
}
261
261
262
262
go ReadAsync (reader, onError)
263
263
264
264
// OR errs := make(chan error)
265
265
266
266
func ReadAsync (r io .Reader , errs chan <- error ) {
267
- err := r ()
268
- if err != nil {
269
- // put error on errs channel, but don't block forever.
270
- }
267
+ err := r ()
268
+ if err != nil {
269
+ // put error on errs channel, but don't block forever.
270
+ }
271
271
}
272
272
```
273
273
@@ -281,35 +281,35 @@ Example:
281
281
282
282
``` go
283
283
func readFile (filename string ) ([]byte , error ) {
284
- file , err := os.Open (filename)
285
- if err != nil {
286
- return nil , fmt.Errorf (" failed to open file: % w" , err)
287
- }
288
- defer file.Close ()
289
-
290
- data , err := ioutil.ReadAll (file)
291
- if err != nil {
292
- return nil , fmt.Errorf (" failed to read file: % w" , err)
293
- }
294
-
295
- return data, nil
284
+ file , err := os.Open (filename)
285
+ if err != nil {
286
+ return nil , fmt.Errorf (" failed to open file: % w" , err)
287
+ }
288
+ defer file.Close ()
289
+
290
+ data , err := ioutil.ReadAll (file)
291
+ if err != nil {
292
+ return nil , fmt.Errorf (" failed to read file: % w" , err)
293
+ }
294
+
295
+ return data, nil
296
296
}
297
297
298
298
func processFile (filename string ) error {
299
- data , err := readFile (filename)
300
- if err != nil {
301
- return fmt.Errorf (" failed to process file: % w" , err)
302
- }
303
- // Process the file data here
304
- return nil
299
+ data , err := readFile (filename)
300
+ if err != nil {
301
+ return fmt.Errorf (" failed to process file: % w" , err)
302
+ }
303
+ // Process the file data here
304
+ return nil
305
305
}
306
306
307
307
func main () {
308
- filename := " example.txt"
309
- err := processFile (filename)
310
- if err != nil {
311
- fmt.Printf (" Error processing file: %v \n " , err) // caller handles the error
312
- }
308
+ filename := " example.txt"
309
+ err := processFile (filename)
310
+ if err != nil {
311
+ fmt.Printf (" Error processing file: %v \n " , err) // caller handles the error
312
+ }
313
313
}
314
314
```
315
315
@@ -413,27 +413,27 @@ FAVOR:
413
413
414
414
``` go
415
415
type Object struct {
416
- subobject SubObject
416
+ subobject SubObject
417
417
}
418
418
419
419
func New () Object {
420
- return Object{
421
- subobject: SubObject{},
422
- }
420
+ return Object{
421
+ subobject: SubObject{},
422
+ }
423
423
}
424
424
```
425
425
426
426
DISFAVOR:
427
427
428
428
``` go
429
429
type Object struct {
430
- subobject *SubObject
430
+ subobject *SubObject
431
431
}
432
432
433
433
func New () *Object {
434
- return &Object{
435
- subobject: &SubObject{},
436
- }
434
+ return &Object{
435
+ subobject: &SubObject{},
436
+ }
437
437
}
438
438
```
439
439
@@ -455,8 +455,8 @@ DO NOT:
455
455
456
456
``` go
457
457
func (s string ) *string {
458
- s := s + " more strings"
459
- return &s // this will move to heap
458
+ s := s + " more strings"
459
+ return &s // this will move to heap
460
460
}
461
461
```
462
462
0 commit comments