# \#define like with ruby

**URL:** <https://www.ruby-forum.com/t/define-like-with-ruby/143001>\
**Category:** Ruby\
**Created:** [July 14, 2008, 12:02pm UTC](https://www.ruby-forum.com/t/define-like-with-ruby/143001 "2008-07-14T12:02:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jyrppa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jyrppa](https://www.ruby-forum.com/u/jyrppa)\
**Post date:** [July 14, 2008, 12:02pm UTC](https://www.ruby-forum.com/t/define-like-with-ruby/143001/1 "2008-07-14T12:02:40Z")

</div>

My code snippet looks like:  
…  
testdata[current\_line + 1] …  
…

I would like to replace current\_line + 1  
with something more desciptive like NEXT\_LINE.

In C I would do:  
#define NEXT\_LINE current\_line + 1

Is there something similar like #define in Ruby ?

---

<div class="post-metadata">

**Author:** ![jyrppa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jyrppa](https://www.ruby-forum.com/u/jyrppa)\
**Post date:** [July 14, 2008, 1:40pm UTC](https://www.ruby-forum.com/t/define-like-with-ruby/143001/2 "2008-07-14T13:40:50Z")

</div>

Jyri Vesalainen wrote:

> My code snippet looks like:  
> …  
> testdata[current\_line + 1] …  
> …
> 
> I would like to replace current\_line + 1  
> with something more desciptive like NEXT\_LINE.
> 
> In C I would do:  
> #define NEXT\_LINE current\_line + 1

Just a C tip: I thought C supported global constants, enums, and inline  
functions. Never use #define if you have any alternative. And if you do,  
put  
parens around (current\_line + 1), to avoid conflicts in operator  
precedence.

> Is there something similar like #define in Ruby ?

(Roughly) everything beginning with a capital letter is a constant.

Make @current\_line into an instance variable of your current object, and  
use:

def next\_line  
@current\_line + 1  
end

But there are far better ways to iterate a Ruby array…

---

<div class="post-metadata">

**Author:** ![jyrppa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jyrppa](https://www.ruby-forum.com/u/jyrppa)\
**Post date:** [July 14, 2008, 2:09pm UTC](https://www.ruby-forum.com/t/define-like-with-ruby/143001/3 "2008-07-14T14:09:13Z")

</div>

Thanks a lot!  
ps.  
My C-code was just a example(obviously bad one).

phlip wrote:  
…

---

<div class="post-metadata">

**Author:** ![jyrppa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jyrppa](https://www.ruby-forum.com/u/jyrppa)\
**Post date:** [July 14, 2008, 3:55pm UTC](https://www.ruby-forum.com/t/define-like-with-ruby/143001/4 "2008-07-14T15:55:33Z")

</div>

Jyri Vesalainen wrote:

> Thanks a lot!  
> ps.  
> My C-code was just a example(obviously bad one).

Sorry. If you questions for a decade on news:comp.lang.c++ , certain  
things  
start to rub off…
