布尔开关,带逗号vs或[关闭]

I know that in Go, you can switch with conditions as the case statements like this:

func ctypeAlpha(b byte) bool {
    return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')
}

switch {
case ctypeAlpha(mysql[i]):
    ...
case mysql[i] == '"' || mysql[i] == '\'' || mysql[i] == '`':
    ...

But in learning that cases break implicitly, and that to have multiple matches execute the same code, you can use commas like this

switch {
case ctypeAlpha(mysql[i]):
    ...
case mysql[i] == '"', mysql[i] == '\'', mysql[i] == '`':
    ... 

Personal opinions aside, which is preferred for performance?

None of the above. For example,

package main

import "fmt"

func isAlpha(b byte) bool {
    return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')
}

func isPunct(b byte) bool {
    return b == '"' || b == '\'' || b == '`'
}

func main() {
    i := 1
    mysql := make([]byte, i+1)
    mysql[i] = 'A'

    switch b := mysql[i]; {
    case isAlpha(b):
        fmt.Printf("isAlpha(%c)
", b)
    case isPunct(b):
        fmt.Printf("isPunct(%c
", b)
    }
}

Playground: https://play.golang.org/p/9SVWBExm9Xj

Output:

isAlpha(A)

Note:

-gcflags='-m'

inlining call to isAlpha
inlining call to isPunct