File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 6
6
7
7
package py
8
8
9
+ import (
10
+ "strings"
11
+ )
12
+
9
13
// A python Range object
10
14
// FIXME one day support BigInts too!
11
15
type Range struct {
@@ -104,6 +108,42 @@ func (r *Range) M__iter__() (Object, error) {
104
108
}, nil
105
109
}
106
110
111
+ func (r * Range ) M__str__ () (Object , error ) {
112
+ return r .M__repr__ ()
113
+ }
114
+
115
+ func (r * Range ) repr () (Object , error ) {
116
+ var b strings.Builder
117
+ b .WriteString ("range(" )
118
+ start , err := ReprAsString (r .Start )
119
+ if err != nil {
120
+ return nil , err
121
+ }
122
+ stop , err := ReprAsString (r .Stop )
123
+ if err != nil {
124
+ return nil , err
125
+ }
126
+ b .WriteString (start )
127
+ b .WriteString (", " )
128
+ b .WriteString (stop )
129
+
130
+ if r .Step != 1 {
131
+ step , err := ReprAsString (r .Step )
132
+ if err != nil {
133
+ return nil , err
134
+ }
135
+ b .WriteString (", " )
136
+ b .WriteString (step )
137
+ }
138
+ b .WriteString (")" )
139
+
140
+ return String (b .String ()), nil
141
+ }
142
+
143
+ func (r * Range ) M__repr__ () (Object , error ) {
144
+ return r .repr ()
145
+ }
146
+
107
147
func (r * Range ) M__len__ () (Object , error ) {
108
148
return r .Length , nil
109
149
}
You can’t perform that action at this time.
0 commit comments