40 lines
		
	
	
		
			623 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			623 B
		
	
	
	
		
			V
		
	
	
struct Foo {
 | 
						|
	bar int
 | 
						|
mut:
 | 
						|
	str string
 | 
						|
}
 | 
						|
 | 
						|
fn (f Foo) baz() string {
 | 
						|
	return 'baz'
 | 
						|
}
 | 
						|
 | 
						|
fn test_string_method_interpolation() {
 | 
						|
	foo := Foo{}
 | 
						|
	s := 'baz=$foo.baz()'
 | 
						|
	assert s == 'baz=baz'
 | 
						|
}
 | 
						|
 | 
						|
fn test_adding_to_mutable_string_field() {
 | 
						|
	mut foo := Foo{10, 'hi'}
 | 
						|
	assert foo.bar == 10
 | 
						|
	assert foo.str == 'hi'
 | 
						|
	foo.str += '!'
 | 
						|
	eprintln(foo.str)
 | 
						|
	assert foo.str == 'hi!'
 | 
						|
}
 | 
						|
 | 
						|
struct MyStruct {
 | 
						|
	a string
 | 
						|
	b int
 | 
						|
}
 | 
						|
 | 
						|
fn test_map_of_ref_struct_string() {
 | 
						|
	mut ar := map[string]&MyStruct{}
 | 
						|
	ar['a'] = &MyStruct{}
 | 
						|
	println(ar)
 | 
						|
	assert '$ar'.contains('MyStruct')
 | 
						|
	assert ('b' in ar) == false
 | 
						|
	assert ('a' in ar) == true
 | 
						|
	assert 'a' in ar
 | 
						|
}
 |