Documentation
¶
Overview ¶
Example (StringPointerBasic) ¶
Estos ejemplos ilustran cómo usar los punteros a strings para evitar asignaciones adicionales
// Creamos una variable string que queremos modificar myText := "héllô wórld" // En lugar de crear una nueva variable con el resultado, // modificamos directamente la variable original usando Apply() Convert(&myText).Tilde().Low().Apply() // La variable original ha sido modificada fmt.Println(myText)
Output: hello world
Example (StringPointerCamelCase) ¶
// Ejemplo de uso con múltiples transformaciones originalText := "Él Múrcielago Rápido" // Las transformaciones modifican la variable original directamente // usando el método Apply() para actualizar el puntero Convert(&originalText).Tilde().CamelLow().Apply() fmt.Println(originalText)
Output: elMurcielagoRapido
Example (StringPointerEfficiency) ¶
// En aplicaciones de alto rendimiento, reducir asignaciones de memoria // puede ser importante para evitar la presión sobre el garbage collector // Método tradicional (crea nuevas asignaciones de memoria) traditionalText := "Texto con ACENTOS" processedText := Convert(traditionalText).Tilde().Low().String() fmt.Println(processedText) // Método con punteros (modifica directamente la variable original) directText := "Otro TEXTO con ACENTOS" Convert(&directText).Tilde().Low().Apply() fmt.Println(directText)
Output: texto con acentos otro texto con acentos
Index ¶
- Constants
- Variables
- func Contains(conv, search string) bool
- func Convert(v ...any) *conv
- func Count(conv, search string) int
- func Err(msgs ...any) *conv
- func Errf(format string, args ...any) *conv
- func Fmt(format string, args ...any) string
- func OutLang(l ...lang)
- func T(values ...any) string
- type Kind
- type LocStr
Examples ¶
Constants ¶
const ( // Group 1: Core Essential Languages (Maximum Global Reach) EN lang = iota // 0 - English (default) ES // 1 - Spanish ZH // 2 - Chinese HI // 3 - Hindi AR // 4 - Arabic // Group 2: Extended Reach Languages (Europe & Americas) PT // 5 - Portuguese FR // 6 - French DE // 7 - German RU // 8 - Russian )
Variables ¶
var D = struct { Allowed LocStr // "allowed" Argument LocStr // "argument" Assign LocStr // "assign" At LocStr // "at" Base LocStr // "base" Be LocStr // "be" Boolean LocStr // "boolean" Call LocStr // "call" Cannot LocStr // "cannot" Character LocStr // "character" Configuration LocStr // "configuration" Decimal LocStr // "decimal" Delimiter LocStr // "delimiter" Digit LocStr // "digit" Element LocStr // "element" Empty LocStr // "empty" End LocStr // "end" Field LocStr // "field" Float LocStr // "float" For LocStr // "for" Format LocStr // "format" Found LocStr // "found" Handler LocStr // "handler" In LocStr // "in" Index LocStr // "index" Integer LocStr // "integer" Invalid LocStr // "invalid" Method LocStr // "method" Missing LocStr // "missing" Mismatch LocStr // "mismatch" More LocStr // "more" Must LocStr // "must" Mutex LocStr // "mutex" Nano LocStr // "nano" Negative LocStr // "negative" NonNumeric LocStr // "non-numeric" Not LocStr // "not" Number LocStr // "number" Numbers LocStr // "numbers" Of LocStr // "of" Options LocStr // "options" Out LocStr // "out" Overflow LocStr // "overflow" Pointer LocStr // "pointer" Point LocStr // "point" Range LocStr // "range" Reflect LocStr // "reflect" Required LocStr // "required" Round LocStr // "round" Seconds LocStr // "seconds" Session LocStr // "session" Slice LocStr // "slice" Specifier LocStr // "specifier" String LocStr // "string" Struct LocStr // "struct" Supported LocStr // "supported" Sync LocStr // "sync" Time LocStr // "time" Type LocStr // "type" Unexported LocStr // "unexported" Unknown LocStr // "unknown" Unsigned LocStr // "unsigned" Use LocStr // "use" Value LocStr // "value" Writer LocStr // "writer" Zero LocStr // "zero" }{ LocStr{"allowed", "permitido", "允许", "अनुमति", "مسموح", "permitido", "autorisé", "erlaubt", "разрешено"}, LocStr{"argument", "argumento", "参数", "तर्क", "وسيط", "argumento", "argument", "Argument", "аргумент"}, LocStr{"assign", "asignar", "分配", "असाइन", "تعيين", "atribuir", "assigner", "zuweisen", "присвоить"}, LocStr{"at", "en", "在", "पर", "في", "em", "à", "bei", "в"}, LocStr{"base", "base", "进制", "आधार", "قاعدة", "base", "base", "Basis", "основание"}, LocStr{"be", "ser", "是", "होना", "كون", "ser", "être", "sein", "быть"}, LocStr{"boolean", "booleano", "布尔", "बूलियन", "منطقي", "booleano", "booléen", "boolescher", "логический"}, LocStr{"call", "llamar", "调用", "कॉल", "استدعاء", "chamar", "appeler", "aufrufen", "вызвать"}, LocStr{"cannot", "no puede", "不能", "नहीं कर सकते", "لا يمكن", "não pode", "ne peut pas", "kann nicht", "не может"}, LocStr{"character", "caracter", "字符", "वर्ण", "حرف", "caractere", "caractère", "Zeichen", "символ"}, LocStr{"configuration", "configuración", "配置", "कॉन्फ़िगरेशन", "تكوين", "configuração", "configuration", "Konfiguration", "конфигурация"}, LocStr{"decimal", "decimal", "十进制", "दशमलव", "عشري", "decimal", "décimal", "Dezimal", "десятичная"}, LocStr{"delimiter", "delimitador", "分隔符", "सीमांकक", "محدد", "delimitador", "délimiteur", "Trennzeichen", "разделитель"}, LocStr{"digit", "dígito", "数字", "अंक", "رقم", "dígito", "chiffre", "Ziffer", "цифра"}, LocStr{"element", "elemento", "元素", "एलिमेंट", "عنصر", "elemento", "élément", "Element", "элемент"}, LocStr{"empty", "vacío", "空", "खाली", "فارغ", "vazio", "vide", "leer", "пустой"}, LocStr{"end", "fin", "结束", "अंत", "نهاية", "fim", "fin", "Ende", "конец"}, LocStr{"field", "campo", "字段", "फील्ड", "حقل", "campo", "champ", "Feld", "поле"}, LocStr{"float", "flotante", "浮点", "फ्लोट", "عائم", "flutuante", "flottant", "Gleitkomma", "число с плавающей точкой"}, LocStr{"for", "para", "为", "के लिए", "لـ", "para", "pour", "für", "для"}, LocStr{"format", "formato", "格式", "प्रारूप", "تنسيق", "formato", "format", "Fmt", "формат"}, LocStr{"found", "encontrado", "找到", "मिला", "موجود", "encontrado", "trouvé", "gefunden", "найден"}, LocStr{"handler", "manejador", "处理程序", "हैंडलर", "معالج", "manipulador", "gestionnaire", "Handler", "обработчик"}, LocStr{"in", "en", "在", "में", "في", "em", "dans", "in", "в"}, LocStr{"index", "índice", "索引", "इंडेक्स", "فهرس", "índice", "index", "Index", "индекс"}, LocStr{"integer", "entero", "整数", "पूर्णांक", "عدد صحيح", "inteiro", "entier", "ganze Zahl", "целое число"}, LocStr{"invalid", "inválido", "无效", "अमान्य", "غير صالح", "inválido", "invalide", "ungültig", "недопустимый"}, LocStr{"method", "método", "方法", "विधि", "طريقة", "método", "méthode", "Methode", "метод"}, LocStr{"missing", "falta", "缺少", "गुम", "مفقود", "ausente", "manquant", "fehlend", "отсутствует"}, LocStr{"mismatch", "desajuste", "不匹配", "बेमेल", "عدم تطابق", "incompatibilidade", "incompatibilité", "Nichtübereinstimmung", "несоответствие"}, LocStr{"more", "más", "更多", "अधिक", "أكثر", "mais", "plus", "mehr", "больше"}, LocStr{"must", "debe", "必须", "चाहिए", "يجب", "deve", "doit", "muss", "должен"}, LocStr{"mutex", "mutex", "互斥锁", "म्यूटेक्स", "قفل", "mutex", "mutex", "Mutex", "мьютекс"}, LocStr{"nano", "nano", "纳秒", "नैनो", "نانو", "nano", "nano", "Nano", "нано"}, LocStr{"negative", "negativo", "负", "नकारात्मक", "سالب", "negativo", "négatif", "negativ", "отрицательный"}, LocStr{"non-numeric", "no numérico", "非数字", "गैर-संख्यात्मक", "غير رقمي", "não numérico", "non numérique", "nicht numerisch", "нечисловой"}, LocStr{"not", "no", "不", "नहीं", "ليس", "não", "pas", "nicht", "не"}, LocStr{"number", "número", "数字", "संख्या", "رقم", "número", "nombre", "Zahl", "число"}, LocStr{"numbers", "números", "数字", "संख्याएं", "أرقام", "números", "nombres", "Zahlen", "числа"}, LocStr{"of", "de", "的", "का", "من", "de", "de", "von", "из"}, LocStr{"options", "opciones", "选项", "विकल्प", "خيارات", "opções", "options", "Optionen", "опции"}, LocStr{"out", "fuera", "出", "बाहर", "خارج", "fora", "hors", "aus", "вне"}, LocStr{"overflow", "desbordamiento", "溢出", "ओवरफ्लो", "فيض", "estouro", "débordement", "Überlauf", "переполнение"}, LocStr{"pointer", "puntero", "指针", "पॉइंटर", "مؤشر", "ponteiro", "pointeur", "Zeiger", "указатель"}, LocStr{"point", "punto", "点", "बिंदु", "نقطة", "ponto", "point", "Punkt", "точка"}, LocStr{"range", "rango", "范围", "रेंज", "نطاق", "intervalo", "plage", "Bereich", "диапазон"}, LocStr{"reflect", "reflejo", "反射", "प्रतिबिंब", "انعكас", "reflexo", "reflet", "Reflektion", "отражение"}, LocStr{"required", "requerido", "必需", "आवश्यक", "مطلوب", "necessário", "requis", "erforderlich", "обязательный"}, LocStr{"round", "redondear", "圆", "गोल", "جولة", "arredondar", "arrondir", "runden", "округлить"}, LocStr{"seconds", "segundos", "秒", "सेकंड", "ثواني", "segundos", "secondes", "Sekunden", "секунды"}, LocStr{"session", "sesión", "会话", "सत्र", "جلسة", "sessão", "session", "Sitzung", "сессия"}, LocStr{"slice", "segmento", "切片", "स्लाइस", "شريحة", "fatia", "tranche", "Scheibe", "срез"}, LocStr{"specifier", "especificador", "说明符", "निर्दिष्टकर्ता", "محدد", "especificador", "spécificateur", "Spezifizierer", "спецификатор"}, LocStr{"string", "cadena", "字符串", "स्ट्रिंग", "سلسلة", "string", "chaîne", "Zeichenkette", "строка"}, LocStr{"struct", "estructura", "结构", "स्ट्रक्चर", "هيكل", "estrutura", "structure", "Struktur", "структура"}, LocStr{"supported", "soportado", "支持", "समर्थित", "مدعوم", "suportado", "pris en charge", "unterstützt", "поддерживается"}, LocStr{"sync", "sincronización", "同步", "सिंक", "مزامنة", "sincronização", "synchronisation", "Synchronisierung", "синхронизация"}, LocStr{"time", "tiempo", "时间", "समय", "وقت", "tempo", "temps", "Zeit", "время"}, LocStr{"type", "tipo", "类型", "प्रकार", "نوع", "tipo", "type", "Typ", "тип"}, LocStr{"unexported", "no exportado", "未导出", "गैर-निर्यातित", "غير مصدر", "não exportado", "non exporté", "nicht exportiert", "неэкспортированный"}, LocStr{"unknown", "desconocido", "未知", "अज्ञात", "غير معروف", "desconhecido", "inconnu", "unbekannt", "неизвестный"}, LocStr{"unsigned", "sin signo", "无符号", "अहस्ताक्षरित", "غير موقع", "sem sinal", "non signé", "vorzeichenlos", "безzнаковый"}, LocStr{"use", "usar", "使用", "उपयोग", "استخدام", "usar", "utiliser", "verwenden", "использовать"}, LocStr{"value", "valor", "值", "मूल्य", "قيمة", "valor", "valeur", "Wert", "значение"}, LocStr{"writer", "escritor", "写入器", "लेखक", "كاتب", "escritor", "écrivain", "Schreiber", "писатель"}, LocStr{"zero", "cero", "零", "शून्य", "صفر", "zero", "zéro", "Null", "ноль"}, }
Global dictionary instance - populated with all translations using horizontal format Language order: EN, ES, ZH, HI, AR, PT, FR, DE, RU
By using an anonymous struct, we define and initialize the dictionary in a single step, avoiding the need for a separate 'type dictionary struct' declaration. The usage API (e.g., D.Argument) remains unchanged.
var K = struct { Invalid Kind Bool Kind Int Kind Int8 Kind Int16 Kind Int32 Kind Int64 Kind Uint Kind Uint8 Kind Uint16 Kind Uint32 Kind Uint64 Kind Uintptr Kind Float32 Kind Float64 Kind Complex64 Kind Complex128 Kind Array Kind Chan Kind Func Kind Interface Kind Map Kind Pointer Kind Slice Kind String Kind Struct Kind UnsafePointer Kind }{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, }
Kind exposes the Kind constants as fields for external use, while keeping the underlying type and values private.
Functions ¶
func Contains ¶ added in v0.0.8
Contains checks if the string 'search' is present in 'conv' Returns true if found, false otherwise This matches the behavior of the standard library strings.Contains
func Convert ¶
func Convert(v ...any) *conv
Convert initializes a new conv struct with optional value for string,bool and number manipulation. REFACTORED: Now accepts variadic parameters - Convert() or Convert(value) Phase 7: Uses object pool internally for memory optimization (transparent to user)
func Count ¶ added in v0.1.6
Count checks how many times the string 'search' is present in 'conv' eg: "hello world" with search "world" will return 1
func Errf ¶ added in v0.1.3
Errf creates a new conv instance with error formatting similar to fmt.Errf Example: tinystring.Errf("invalid value: %s", value).Error()
func Fmt ¶ added in v0.1.3
Fmt formats a string using a printf-style format string and arguments. Example: Fmt("Hello %s", "world") returns "Hello world"
func OutLang ¶ added in v0.1.3
func OutLang(l ...lang)
OutLang sets the default output language OutLang() without parameters auto-detects system language OutLang(ES) sets Spanish as default
func T ¶ added in v0.1.3
T creates a translated string with support for multilingual translations Same functionality as Err but returns string directly instead of *conv This function is used internally by the builder API for efficient string construction
Usage examples: T(D.Format, D.Invalid) returns "invalid format" T(ES, D.Format, D.Invalid) returns "formato inválido"
Types ¶
type Kind ¶ added in v0.1.18
type Kind uint8
Kind represents the specific Kind of type that a Type represents (private) Unified with convert.go Kind, using K prefix for TinyString naming convention.
IMPORTANT: The order and values of Kind must NOT be changed. These values are used in tinyreflect, a minimal version of reflectlite from the Go standard library. Keeping the order and values identical ensures compatibility with code and data shared between tinystring and tinyreflect.
type LocStr ¶ added in v0.1.4
type LocStr [9]string
LocStr represents a string with translations for multiple languages.
It is a fixed-size array where each index corresponds to a language constant (EN, ES, PT, etc.). This design ensures type safety and efficiency, as the compiler can verify that all translations are provided.
The order of translations must match the order of the language constants.
Example of creating a new translatable term for "File":
var MyDictionary = struct { File LocStr }{ File: LocStr{ EN: "file", ES: "archivo", ZH: "文件", HI: "फ़ाइल", AR: "ملف", PT: "arquivo", FR: "fichier", DE: "Datei", RU: "файл", }, }
Usage in code:
err := Err(MyDictionary.File, D.Not, D.Found) // -> "file not found", "archivo no encontrado", etc.
Source Files
¶
- bool.go
- builder.go
- capitalize.go
- compact_float.go
- contain.go
- convert.go
- dictionary.go
- env.back.go
- error.go
- fmt_number.go
- fmt_precision.go
- fmt_template.go
- join.go
- kind.go
- language.go
- mapping.go
- memory.go
- num_float.go
- num_int.go
- parse.go
- quote.go
- repeat.go
- replace.go
- sci_format.go
- split.go
- translation.go
- truncate.go
- wr_uintbase.go