有点意思的百分比代码

139 阅读1分钟

网上看到荷兰政府 DigiD 数字认证的一段代码

        private static string GetPercentageRounds(double percentage)
        {
            if (percentage == 0)
                return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪";
            if (percentage > 0.0 && percentage <= 0.1)
                return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪";
            if (percentage > 0.1 && percentage <= 0.2)
                return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪";
            if (percentage > 0.2 && percentage <= 0.3)
                return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪";
            if (percentage > 0.3 && percentage <= 0.4)
                return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪";
            if (percentage > 0.4 && percentage <= 0.5)
                return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪";
            if (percentage > 0.5 && percentage <= 0.6)
                return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪";
            if (percentage > 0.6 && percentage <= 0.7)
                return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪";
            if (percentage > 0.7 && percentage <= 0.8)
                return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪";
            if (percentage > 0.8 && percentage <= 0.9)
                return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪";

            return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵";
        }

感觉有点意思,顺手写个 Kotlin 版的:

fun getPercentageRounds(percentage: Double): String {
    return if (percentage <= 0.0) {
        "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪"
    } else if (percentage >= 1.0) {
        "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵"
    } else {
        val count = ceil(percentage * 10).toInt()
        "🔵".repeat(count) + "⚪".repeat(10 - count)
    }
}

或者

fun getPercentageRounds(percentage: Double): String {
    if (percentage <= 0.0) return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪"
    if (percentage <= 0.1) return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪"
    if (percentage <= 0.2) return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪"
    if (percentage <= 0.3) return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪"
    if (percentage <= 0.4) return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪"
    if (percentage <= 0.5) return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪"
    if (percentage <= 0.6) return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪"
    if (percentage <= 0.7) return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪"
    if (percentage <= 0.8) return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪"
    if (percentage <= 0.9) return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪"
                           return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵"
}

😏