Sha256: 49934965ef551e9a189afa636e9acd96fc24b4d40030d693a762a5a981b0731f

Contents?: true

Size: 678 Bytes

Versions: 106

Compression:

Stored size: 678 Bytes

Contents

package bob

import "strings"

// Hey returns Bob's responses to a given remark.
func Hey(remark string) string {
	switch remark = strings.TrimSpace(remark); {
	case silent(remark):
		return "Fine. Be that way!"
	case yelling(remark):
		if asking(remark) {
			return "Calm down, I know what I'm doing!"
		}
		return "Whoa, chill out!"
	case asking(remark):
		return "Sure."
	default:
		return "Whatever."
	}
}

func yelling(remark string) bool {
	return strings.ToUpper(remark) == remark && strings.ToLower(remark) != strings.ToUpper(remark)
}

func asking(remark string) bool {
	return strings.HasSuffix(remark, "?")
}

func silent(remark string) bool {
	return remark == ""
}

Version data entries

106 entries across 106 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/bob/example.go
trackler-2.2.1.179 tracks/go/exercises/bob/example.go
trackler-2.2.1.178 tracks/go/exercises/bob/example.go
trackler-2.2.1.177 tracks/go/exercises/bob/example.go
trackler-2.2.1.176 tracks/go/exercises/bob/example.go
trackler-2.2.1.175 tracks/go/exercises/bob/example.go
trackler-2.2.1.174 tracks/go/exercises/bob/example.go
trackler-2.2.1.173 tracks/go/exercises/bob/example.go
trackler-2.2.1.172 tracks/go/exercises/bob/example.go
trackler-2.2.1.171 tracks/go/exercises/bob/example.go
trackler-2.2.1.170 tracks/go/exercises/bob/example.go
trackler-2.2.1.169 tracks/go/exercises/bob/example.go
trackler-2.2.1.167 tracks/go/exercises/bob/example.go
trackler-2.2.1.166 tracks/go/exercises/bob/example.go
trackler-2.2.1.165 tracks/go/exercises/bob/example.go
trackler-2.2.1.164 tracks/go/exercises/bob/example.go
trackler-2.2.1.163 tracks/go/exercises/bob/example.go
trackler-2.2.1.162 tracks/go/exercises/bob/example.go
trackler-2.2.1.161 tracks/go/exercises/bob/example.go
trackler-2.2.1.160 tracks/go/exercises/bob/example.go