首页 > 其他 > 详细

2.12 指定缩进

时间:2018-03-22 00:15:16      阅读:192      评论:0      收藏:0      [点我收藏+]

package main

import (
    "fmt"
    "strconv"
    "strings"
    "unicode"
)

func main() {

    text := "Hi! Go is awesome."
    text = Indent(text, 6)
    fmt.Println(text)

    text = Unindent(text, 3)
    fmt.Println(text)

    text = Unindent(text, 10)
    fmt.Println(text)

    text = IndentByRune(text, 10, ‘.‘)
    fmt.Println(text)

}

// Indent indenting the input by given indent and rune
func IndentByRune(input string, indent int, r rune) string {
    return strings.Repeat(string(r), indent) + input
}

// Indent indenting the input by given indent
func Indent(input string, indent int) string {
    padding := indent + len(input)
    return fmt.Sprintf("% "+strconv.Itoa(padding)+"s", input)
}

// Unindent unindenting the input string. In case the
// input is indented by less than "indent" spaces
// the min of this both is removed.
func Unindent(input string, indent int) string {

    count := 0
    for _, val := range input {
        if unicode.IsSpace(val) {
            count++
        }
        if count == indent || !unicode.IsSpace(val) {
            break
        }
    }

    return input[count:]
}

/*
      Hi! Go is awesome.
   Hi! Go is awesome.
Hi! Go is awesome.
..........Hi! Go is awesome.

*/

2.12 指定缩进

原文:https://www.cnblogs.com/zrdpy/p/8620715.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!