本文整理汇总了Golang中container/list.List.MoveBefore方法的典型用法代码示例。如果您正苦于以下问题:Golang List.MoveBefore方法的具体用法?Golang List.MoveBefore怎么用?Golang List.MoveBefore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类container/list.List
的用法示例。
在下文中一共展示了List.MoveBefore方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: mv
func mv(l *list.List, args []string) {
switch len(args) {
case 0:
fmt.Println("What item do you want to move?")
os.Exit(1)
case 1:
fmt.Println("Too few arguments.")
os.Exit(1)
case 2:
// Check if remaining args are integers
nums := make([]int, len(args))
for i, a := range args {
n, err := strconv.Atoi(a)
if err != nil {
fmt.Printf("%q is not an item number.\n", a)
os.Exit(1)
}
nums[i] = n
}
// Make sure integers is not out of bounds
if max(nums...) > l.Len() {
fmt.Printf("item [%d] is out of bounds.\n", max(nums...))
os.Exit(1)
} else if min(nums...) < 1 {
fmt.Printf("item [%d] is out of bounds.\n", min(nums...))
os.Exit(1)
} else if nums[0] == nums[1] { // Make sure numbers are different
fmt.Println("Item alread in place.")
os.Exit(1)
}
// Collect elements
elements := make([]*list.Element, len(nums))
itemNumber, element := 1, l.Front()
for itemNumber <= max(nums...) {
if itemNumber == nums[0] {
elements[0] = element
}
if itemNumber == nums[1] {
elements[1] = element
}
element = element.Next()
itemNumber++
}
// Update date
elements[0].Value.(ListItem)[DATE] = time.Now().Format(DATE_FORMAT)
// Move item
if nums[0] < nums[1] { // Use moveAfter
l.MoveAfter(elements[0], elements[1])
} else { // Use moveBefore
l.MoveBefore(elements[0], elements[1])
}
fmt.Printf("Moving item:[%d] to location:[%d]\n", nums[0], nums[1])
default:
fmt.Println("Too many arguments.")
os.Exit(1)
}
}