60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package utility
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"fmt"
							 | 
						||
| 
								 | 
							
									"math/rand"
							 | 
						||
| 
								 | 
							
									"time"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var adjectives = []string{
							 | 
						||
| 
								 | 
							
									"Swift", "Brave", "Clever", "Happy", "Lucky", "Mysterious", "Bold", "Fierce", "Noble", "Graceful",
							 | 
						||
| 
								 | 
							
									"Vivid", "Loyal", "Fearless", "Cunning", "Wise", "Radiant", "Silent", "Majestic", "Gentle", "Persistent",
							 | 
						||
| 
								 | 
							
									"Curious", "Agile", "Sharp", "Elegant", "Eager", "Vigorous", "Daring", "Mighty", "Witty", "Strong",
							 | 
						||
| 
								 | 
							
									"Bright", "Persistent", "Resilient", "Fearless", "Imaginative", "Creative", "Charming", "Playful", "Vigorous",
							 | 
						||
| 
								 | 
							
									"Passionate", "Dashing", "Resolute", "Adventurous", "Energetic", "Courageous",
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var animals = []string{
							 | 
						||
| 
								 | 
							
									"Tiger", "Panda", "Eagle", "Wolf", "Lion", "Fox", "Bear", "Falcon", "Shark", "Rabbit",
							 | 
						||
| 
								 | 
							
									"Elephant", "Zebra", "Cheetah", "Jaguar", "Leopard", "Giraffe", "Hawk", "Owl", "Dragon", "Whale",
							 | 
						||
| 
								 | 
							
									"Buffalo", "Panther", "Raven", "Vulture", "Bison", "Wolfhound", "Penguin", "Koala", "Coyote", "Crocodile",
							 | 
						||
| 
								 | 
							
									"Rhinoceros", "Kangaroo", "Camel", "Alligator", "Otter", "Squid", "Octopus", "Cheetah", "Lynx", "Mole",
							 | 
						||
| 
								 | 
							
									"Seagull", "Tiger Shark", "Wolverine", "Snow Leopard", "Bald Eagle",
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 生成唯一昵称
							 | 
						||
| 
								 | 
							
								func GenerateUniqueNickname() (string, error) {
							 | 
						||
| 
								 | 
							
									rand.Seed(time.Now().UnixNano())
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									nickname := fmt.Sprintf("%s%s%s%s", // 形容词 + 动物名 + 随机字母 + 随机数字
							 | 
						||
| 
								 | 
							
										adjectives[rand.Intn(len(adjectives))],
							 | 
						||
| 
								 | 
							
										animals[rand.Intn(len(animals))],
							 | 
						||
| 
								 | 
							
										randomString(1), // 随机一个字母
							 | 
						||
| 
								 | 
							
										randomDigits(4), // 随机 4 个数字
							 | 
						||
| 
								 | 
							
									)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return nickname, fmt.Errorf("未能生成唯一昵称")
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 随机生成字母
							 | 
						||
| 
								 | 
							
								func randomString(n int) string {
							 | 
						||
| 
								 | 
							
									letters := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
							 | 
						||
| 
								 | 
							
									rand.Seed(time.Now().UnixNano())
							 | 
						||
| 
								 | 
							
									result := make([]rune, n)
							 | 
						||
| 
								 | 
							
									for i := range result {
							 | 
						||
| 
								 | 
							
										result[i] = letters[rand.Intn(len(letters))]
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return string(result)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 随机生成数字
							 | 
						||
| 
								 | 
							
								func randomDigits(n int) string {
							 | 
						||
| 
								 | 
							
									digits := []rune("0123456789")
							 | 
						||
| 
								 | 
							
									rand.Seed(time.Now().UnixNano())
							 | 
						||
| 
								 | 
							
									result := make([]rune, n)
							 | 
						||
| 
								 | 
							
									for i := range result {
							 | 
						||
| 
								 | 
							
										result[i] = digits[rand.Intn(len(digits))]
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return string(result)
							 | 
						||
| 
								 | 
							
								}
							 |