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 Index(s, substr string) int
- func LastIndex(s, substr string) int
- func OutLang(l ...any) string
- func T(values ...any) *conv
- 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 { // A All LocStr // "all" Allowed LocStr // "allowed" Arrow LocStr // "arrow" Argument LocStr // "argument" Assign LocStr // "assign" Assignable LocStr // "assignable" // B BackingUp LocStr // "backing up" Be LocStr // "be" Binary LocStr // "binary" // C Call LocStr // "call" Can LocStr // "can" Cannot LocStr // "cannot" Cancel LocStr // "cancel" Changed LocStr // "changed" Character LocStr // "character" Coding LocStr // "coding" Compilation LocStr // "compilation" Configuration LocStr // "configuration" Connection LocStr // "connection" Content LocStr // "content" Create LocStr // "create" // D Debugging LocStr // "debugging" Decimal LocStr // "decimal" Delimiter LocStr // "delimiter" Digit LocStr // "digit" Down LocStr // "down" // E Edit LocStr // "edit" Element LocStr // "element" Empty LocStr // "empty" End LocStr // "end" Exceeds LocStr // "exceeds" Execute LocStr // "execute" // F Failed LocStr // "failed" Field LocStr // "field" Fields LocStr // "fields" Files LocStr // "files" Format LocStr // "format" Found LocStr // "found" // H Handler LocStr // "handler" // I Icons LocStr // "icons" Insert LocStr // "insert" Left LocStr // "left" Implemented LocStr // "implemented" In LocStr // "in" Index LocStr // "index" Information LocStr // "information" Input LocStr // "input" Install LocStr // "install" Installation LocStr // "installation" Invalid LocStr // "invalid" // K Keyboard LocStr // "keyboard" // L Language LocStr // "language" Line LocStr // "line" // M Maximum LocStr // "maximum" Method LocStr // "method" Missing LocStr // "missing" Mismatch LocStr // "mismatch" Mode LocStr // "mode" Modes LocStr // "modes" More LocStr // "more" Move LocStr // "move" Must LocStr // "must" // N Negative LocStr // "negative" Nil LocStr // "null" NonNumeric LocStr // "non-numeric" Not LocStr // "not" NotOfType LocStr // "not of type" Number LocStr // "number" Numbers LocStr // "numbers" // O Of LocStr // "of" Options LocStr // "options" Out LocStr // "out" Overflow LocStr // "overflow" // P Page LocStr // "page" Pointer LocStr // "pointer" Point LocStr // "point" Preparing LocStr // "preparing" Production LocStr // "production" Provided LocStr // "provided" // Q Quit LocStr // "quit" // R Range LocStr // "range" Read LocStr // "read" Required LocStr // "required" Right LocStr // "right" Round LocStr // "round" // S Seconds LocStr // "seconds" Session LocStr // "session" Slice LocStr // "slice" Space LocStr // "space" Status LocStr // "status" String LocStr // "string" Shortcuts LocStr // "shortcuts" Supported LocStr // "supported" Switch LocStr // "switch" Switching LocStr // "switching" Sync LocStr // "sync" System LocStr // "system" // T Tab LocStr // "tab" Test LocStr // "test" Testing LocStr // "testing" Text LocStr // "text" Time LocStr // "time" To LocStr // "to" Type LocStr // "type" // U Unexported LocStr // "unexported" Unknown LocStr // "unknown" Unsigned LocStr // "unsigned" Up LocStr // "up" Use LocStr // "use" // V Valid LocStr // "valid" Validating LocStr // "validating" Value LocStr // "value" Visible LocStr // "visible" // Z Zero LocStr // "zero" }{}/* 114 elements not displayed */
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'. Uses Index internally for efficient single-pass detection.
Examples:
Contains("hello world", "world") // returns true Contains("hello world", "xyz") // returns false Contains("", "test") // returns false (empty string) Contains("test", "") // returns false (empty search) Contains("data\x00more", "\x00") // returns true (null byte) Contains("Case", "case") // returns false (case sensitive)
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'. Uses Index internally for consistency and maintainability.
Examples:
Count("abracadabra", "abra") // returns 2 Count("hello world", "l") // returns 3 Count("golang", "go") // returns 1 Count("test", "xyz") // returns 0 (not found) Count("anything", "") // returns 0 (empty search) Count("a\x00b\x00c", "\x00") // returns 2 (null bytes)
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 Index ¶ added in v0.1.48
Index finds the first occurrence of substr in s, returns -1 if not found. This is the base primitive that other functions will reuse.
Examples:
Index("hello world", "world") // returns 6 Index("hello world", "lo") // returns 3 Index("hello world", "xyz") // returns -1 (not found) Index("hello world", "") // returns 0 (empty string) Index("data\x00more", "\x00") // returns 4 (null byte)
func LastIndex ¶ added in v0.1.47
LastIndex returns the index of the last instance of substr in s, or -1 if substr is not present in s.
Special cases:
- If substr is empty, LastIndex returns len(s).
- If substr is not found in s, LastIndex returns -1.
- If substr is longer than s, LastIndex returns -1.
Examples:
LastIndex("hello world", "world") // returns 6 LastIndex("hello world hello", "hello") // returns 12 (last occurrence) LastIndex("image.backup.jpg", ".") // returns 12 (useful for file extensions) LastIndex("hello", "xyz") // returns -1 (not found) LastIndex("hello", "") // returns 5 (len("hello")) LastIndex("", "hello") // returns -1 (not found in empty string)
Common use case - extracting file extensions:
filename := "document.backup.pdf" pos := LastIndex(filename, ".") if pos >= 0 { extension := filename[pos+1:] // "pdf" }
func OutLang ¶ added in v0.1.3
OutLang sets and returns the current output language as a string.
OutLang() // Auto-detects system/browser language, returns code (e.g. "EN") OutLang(ES) // Set Spanish as default (using lang constant), returns "ES" OutLang("ES") // Set Spanish as default (using string code), returns "ES" OutLang("fr") // Set French as default (case-insensitive), returns "FR" OutLang("en-US") // Accepts locale strings, parses to EN, returns "EN"
If a string is passed, it is automatically parsed using supported codes. If a lang value is passed, it is assigned directly. If another type is passed, nothing happens. Always returns the current language code as string (e.g. "EN", "ES", etc).
func T ¶ added in v0.1.3
func T(values ...any) *conv
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" T creates a translated string with support for multilingual translations Same functionality as Err but returns *conv for further formatting This function is used internally by the builder API for efficient string construction
Usage examples: T(D.Format, D.Invalid) returns *conv with "invalid format" T(ES, D.Format, D.Invalid) returns *conv with "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
- 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
- operations.go
- parse.go
- quote.go
- repeat.go
- replace.go
- sci_format.go
- search.go
- split.go
- translation.go
- truncate.go
- wr_uintbase.go