1// Copyright 2018 Frank Schroeder. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package properties 6 7import ( 8 "fmt" 9 "log" 10) 11 12func ExampleLoad_iso88591() { 13 buf := []byte("key = ISO-8859-1 value with unicode literal \\u2318 and umlaut \xE4") // 0xE4 == ä 14 p, _ := Load(buf, ISO_8859_1) 15 v, ok := p.Get("key") 16 fmt.Println(ok) 17 fmt.Println(v) 18 // Output: 19 // true 20 // ISO-8859-1 value with unicode literal ⌘ and umlaut ä 21} 22 23func ExampleLoad_utf8() { 24 p, _ := Load([]byte("key = UTF-8 value with unicode character ⌘ and umlaut ä"), UTF8) 25 v, ok := p.Get("key") 26 fmt.Println(ok) 27 fmt.Println(v) 28 // Output: 29 // true 30 // UTF-8 value with unicode character ⌘ and umlaut ä 31} 32 33func ExampleProperties_GetBool() { 34 var input = ` 35 key=1 36 key2=On 37 key3=YES 38 key4=true` 39 p, _ := Load([]byte(input), ISO_8859_1) 40 fmt.Println(p.GetBool("key", false)) 41 fmt.Println(p.GetBool("key2", false)) 42 fmt.Println(p.GetBool("key3", false)) 43 fmt.Println(p.GetBool("key4", false)) 44 fmt.Println(p.GetBool("keyX", false)) 45 // Output: 46 // true 47 // true 48 // true 49 // true 50 // false 51} 52 53func ExampleProperties_GetString() { 54 p, _ := Load([]byte("key=value"), ISO_8859_1) 55 v := p.GetString("another key", "default value") 56 fmt.Println(v) 57 // Output: 58 // default value 59} 60 61func Example() { 62 // Decode some key/value pairs with expressions 63 p, err := Load([]byte("key=value\nkey2=${key}"), ISO_8859_1) 64 if err != nil { 65 log.Fatal(err) 66 } 67 68 // Get a valid key 69 if v, ok := p.Get("key"); ok { 70 fmt.Println(v) 71 } 72 73 // Get an invalid key 74 if _, ok := p.Get("does not exist"); !ok { 75 fmt.Println("invalid key") 76 } 77 78 // Get a key with a default value 79 v := p.GetString("does not exist", "some value") 80 fmt.Println(v) 81 82 // Dump the expanded key/value pairs of the Properties 83 fmt.Println("Expanded key/value pairs") 84 fmt.Println(p) 85 86 // Output: 87 // value 88 // invalid key 89 // some value 90 // Expanded key/value pairs 91 // key = value 92 // key2 = value 93} 94