|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Consider the following for loop in 'C' or 'c++' or 'java'
for (i=namespaceEnd - 1; i >= 0; i--) Please me with code to do the same functionality in ruby -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Martin Durai <martin@angleritech.com> writes:
> Consider the following for loop in 'C' or 'c++' or 'java' > > for (i=namespaceEnd - 1; i >= 0; i--) > > Please me with code to do the same functionality in ruby > -- > Posted via http://www.ruby-forum.com/. How about this: (namespace_end - 1).downto(0) { |x| puts x } Hope that s, Carl. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Thank you carl, iam very new to this language
sorry carl could you with this code fully for( int i = namespaceEnd -1; i >= 0; i--) { if( prefix.equals( namespacePrefix[ i ] ) ) { return namespaceUri[ i ]; } thank you in advance -- Posted via http://www.ruby-forum.com/. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Martin Durai wrote:
> Thank you carl, iam very new to this language > > sorry carl could you with this code fully > > for( int i = namespaceEnd -1; i >= 0; i--) { > if( prefix.equals( namespacePrefix[ i ] ) ) { > return namespaceUri[ i ]; > } > > > thank you in advance (namespace_end - 1).downto(0) { |x| return namespaceUri[x] if prefix==namespacePrefix[x] } Todd -- Posted via http://www.ruby-forum.com/. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Martin Durai <martin@angleritech.com> writes:
> Thank you carl, iam very new to this language > > sorry carl could you with this code fully > > for( int i = namespaceEnd -1; i >= 0; i--) { > if( prefix.equals( namespacePrefix[ i ] ) ) { > return namespaceUri[ i ]; > } > > > thank you in advance > I suspect you're looking for the element in the namespaceUri array which is at the position determined by looking up the position of 'prefix' in the namespacePrefix array (how very unsettling). Assuming namespaceEnd is actually the count of elements in the namespacePrefix array, would this work? your_value = (i = namespace_prefix.index(prefix)) ? namespace_uri[i] : nil Where 'your_value' will now contain the namespace_uri value, or nil if it was not found in namespace_prefix If i've misunderstood your question, post back with the values of prefix, namespacePrefix, namespaceUri and namespaceEnd, and what you expect to get out of it and I'll see if I can't . |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Todd Burch <promos@burchwoodusa.com> writes:
> Martin Durai wrote: >> Thank you carl, iam very new to this language >> >> sorry carl could you with this code fully >> >> for( int i = namespaceEnd -1; i >= 0; i--) { >> if( prefix.equals( namespacePrefix[ i ] ) ) { >> return namespaceUri[ i ]; >> } >> >> >> thank you in advance > > (namespace_end - 1).downto(0) { |x| > return namespaceUri[x] if prefix==namespacePrefix[x] } > > Todd I'm getting a 'LocalJumpError: unexpected return' error when I try to return from within a downto block, is this supported in your version? Carl. |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Martin Durai wrote:
> Consider the following for loop in 'C' or 'c++' or 'java' > > for (i=namespaceEnd - 1; i >= 0; i--) > > Please me with code to do the same functionality in ruby ruby does not really have a for loop as such but there are various ways to get the job done. You saw the upto approach. Here is another: namespaceEnd.times do # your code in here end now, this works for 0..namespace - 1 automatically. If you need to run in reverse, can use the downto or a calculation. namespaceEnd.times do |my_var| some_array[namespaceEnd - my_var] = some_val end but that is clunky. If you are iterating through an array you can use the each loop: my_arr = ["aaa", "bbb", "ccc", "ddd"] my_arr.each_with_index {|str, idx| puts "#{idx}. #{str}"} => 0. aaa 1. bbb 2. ccc 3. ddd If you want only the values, use my_arr.each If you want only the index position, use my_arr.each_index HTH -- Posted via http://www.ruby-forum.com/. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
On Wed, 21 Nov 2007 13:39:58 +0900, Martin Durai <martin@angleritech.com=
> = wrote: > Thank you carl, iam very new to this language > > sorry carl could you with this code fully > > for( int i =3D namespaceEnd -1; i >=3D 0; i--) { > if( prefix.equals( namespacePrefix[ i ] ) ) { > return namespaceUri[ i ]; > } > > > thank you in advance > You might consider using an array of namespace objects instead of parall= el = arrays class Namespace attr_reader :prefix, :uri def initialize(prefix, uri) @prefix =3D prefix @uri =3D uri end end namespaces =3D [ Namespace.new("prefix", "uri"), ...] then your code becomes something like: matching_namespace =3D namespaces.find {|namespace| namespace.prefix =3D= =3D = prefix) return matching_namespace ? matching_namespace.uri : nil |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Paul McMahon <pm@ubit.com> writes:
> > You might consider using an array of namespace objects instead of parallel > arrays > > class Namespace > attr_reader :prefix, :uri > def initialize(prefix, uri) > @prefix = prefix > @uri = uri > end > end > > namespaces = [ Namespace.new("prefix", "uri"), ...] > > then your code becomes something like: > > matching_namespace = namespaces.find {|namespace| namespace.prefix == > prefix) > return matching_namespace ? matching_namespace.uri : nil Good point. I suspect in this case a plain old Hash might do wonders to simplify the problem... Carl. |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Sorry the code is running well in my system. I didnt got any error. I
have checked the code with my applications. -- Posted via http://www.ruby-forum.com/. |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
On 21.11.2007 04:59, Martin Durai wrote:
> Consider the following for loop in 'C' or 'c++' or 'java' > > for (i=namespaceEnd - 1; i >= 0; i--) > > Please me with code to do the same functionality in ruby Did you actually read a tutorial or book about the language? If not, it's probably easier to do that vs. trying to cover all these basic questions via newsgroup... Cheers robert |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
"Martin Durai" <martin@angleritech.com> wrote in message news:f747d23ae4aecdcd871befcbebba0d09@ruby-forum.com... > Consider the following for loop in 'C' or 'c++' or 'java' > > for (i=namespaceEnd - 1; i >= 0; i--) > > Please me with code to do the same functionality in ruby I'm surprised no one's suggested the obvious: namespace.reverse_each do |i| # Do something with i end ...this assumes you don't actually need an index, which is usually the case. It also assumes that namespaceEnd is the end of a container called "namespace," or some such... If you need the index, instead of the array, you'll have to do something wild and zany, like: namespace.reverse.each_index do |i| # Do something with i end ...does this ? |
|
![]() |
| Outils de la discussion | |
|
|