Loading ...
Sorry, an error occurred while loading the content.

symbols, literals

Expand Messages
  • Ronny Haryanto
    Hi *, Symbols yg ada di ruby yg diawali tanda colon, seperti :something, itu padanannya di perl atau language lain apa ya? Atau gak ada? Saya kok nggak ngeh
    Message 1 of 5 , Nov 7, 2005
    • 0 Attachment
      Hi *,

      Symbols yg ada di ruby yg diawali tanda colon, seperti :something, itu
      padanannya di perl atau language lain apa ya? Atau gak ada?

      Saya kok nggak ngeh sama yg satu ini. Kirain buat nulis literals,
      tapi ternyata saya salah.


      ronny@mambo ~ $ irb
      irb(main):001:0> person = { 'name' => 'Ronny', 'job' => 'student' }
      => {"name"=>"Ronny", "job"=>"student"}
      irb(main):002:0> person['name']
      => "Ronny"
      irb(main):003:0> person[:name]
      => nil
      irb(main):004:0> person[:name] = 'Ronny Haryanto'
      => "Ronny Haryanto"
      irb(main):005:0> person[:name]
      => "Ronny Haryanto"
      irb(main):006:0> person['name']
      => "Ronny"


      Jadi kapan mesti pake symbols?


      Ronny
    • Steven Haryanto
      ... gak ada. symbol ini ada terutama untuk performance reason aja. kalo kita membuat 2 objek string yang sama, mis: (a= foo ;b= foo ) maka akan tercipta 2 kopi
      Message 2 of 5 , Nov 7, 2005
      • 0 Attachment
        Ronny Haryanto wrote:
        > Hi *,
        >
        > Symbols yg ada di ruby yg diawali tanda colon, seperti :something, itu
        > padanannya di perl atau language lain apa ya? Atau gak ada?

        gak ada. symbol ini ada terutama untuk performance reason aja. kalo kita
        membuat 2 objek string yang sama, mis: (a="foo";b="foo") maka akan
        tercipta 2 kopi "foo", tapi untuk symbol hanya satu. semua symbol
        disimpan dalam 1 tabel global.

        maybe di masa depan kalau ada immutable string atau copy-on-write
        technology untuk string di ruby, symbol tidak akan terlalu perlu lagi?

        > Jadi kapan mesti pake symbols?

        basically if performance/memory usage is important. symbol cukup cocok
        dijadikan keys pada hash, apalagi jika ada banyak keys dan penggunaannya
        cukup intensif.

        foo = {'bar': 1, 'baz': 2}
        puts foo['bar']
        puts foo['baz']

        di contoh di atas, kita telah membuat 2 buah instans string 'bar' dan
        'baz'. imagine doing that hundreds/thousands of times.

        tapi gak usah terlalu peduli performance lah kalau belum benar2 perlu.
        ruby sangat efisien kok dalam create/destroy objects.

        --
        Steven Haryanto | PT. Master Web Network (MWN)
        http://people.masterwebnet.com/steven | Ged Cyber Lt9, Kuningan Barat 8
        Y!:stevenharyanto | Jaksel 12710. Ph: (021) 5269311
      • Ronny Haryanto
        ... OK. Thanks. Gua emang udah ada feeling kalo :symbol lebih efisien somehow, hehehe, but I couldn t be bothered to look it up :-) ... Sebetulnya gua lagi
        Message 3 of 5 , Nov 7, 2005
        • 0 Attachment
          On Mon, Nov 07, 2005 at 07:25:06PM +0700, Steven Haryanto wrote:
          > Ronny Haryanto wrote:
          > > Hi *,
          > >
          > > Symbols yg ada di ruby yg diawali tanda colon, seperti :something, itu
          > > padanannya di perl atau language lain apa ya? Atau gak ada?
          >
          > gak ada. symbol ini ada terutama untuk performance reason aja. kalo kita
          > membuat 2 objek string yang sama, mis: (a="foo";b="foo") maka akan
          > tercipta 2 kopi "foo", tapi untuk symbol hanya satu. semua symbol
          > disimpan dalam 1 tabel global.
          >
          > maybe di masa depan kalau ada immutable string atau copy-on-write
          > technology untuk string di ruby, symbol tidak akan terlalu perlu lagi?

          OK. Thanks. Gua emang udah ada feeling kalo :symbol lebih efisien
          somehow, hehehe, but I couldn't be bothered to look it up :-)

          > > Jadi kapan mesti pake symbols?
          >
          > basically if performance/memory usage is important. symbol cukup cocok
          > dijadikan keys pada hash, apalagi jika ada banyak keys dan penggunaannya
          > cukup intensif.
          >
          > foo = {'bar': 1, 'baz': 2}
          > puts foo['bar']
          > puts foo['baz']
          >
          > di contoh di atas, kita telah membuat 2 buah instans string 'bar' dan
          > 'baz'. imagine doing that hundreds/thousands of times.

          Sebetulnya gua lagi bikin program pake rails. Trus gua pikir kalo hash
          key itu pake 'key' atau :key sama aja gitu, cuma :key lebih bagus
          somehow (tadi gak tau why, hehe). Nah pas mau access @session[:user]
          kok nil, padahal di dumpnya ada yg namanya 'user'. Ternyata setelah
          dicoba pake @session['user'] baru bisa. Gak konsisten aja kayaknya di
          rails, kadang ada yg pake :key, kadang ada yg pake 'key', jadinya
          gak intuitive kapan mesti pake yg mana.

          Thanks! Skrg dah jelas deh. Nti kalo programnya dah kelar tak announce
          ke sini deh.

          > tapi gak usah terlalu peduli performance lah kalau belum benar2 perlu.
          > ruby sangat efisien kok dalam create/destroy objects.

          Memang in general gua begitu kok, gak cuma di ruby, hehe. Gua seneng
          betul ama quotenya Donald Knuth: "Premature optimization is the root
          of all evil." Hehehe.

          Ronny
        • gnome_g
          ... Symbol di ruby itu diambil dari keluarga bahasa lisp. Di lisp, tujuan utama symbol bukan sebagai alat efisiensi, tapi untuk menjelaskan maksud programmer.
          Message 4 of 5 , Nov 8, 2005
          • 0 Attachment
            --- In id-ruby@yahoogroups.com, Ronny Haryanto <ronnylist@h...> wrote:
            > padanannya di perl atau language lain apa ya? Atau gak ada?

            Symbol di ruby itu diambil dari keluarga bahasa lisp. Di lisp, tujuan
            utama symbol bukan sebagai alat efisiensi, tapi untuk menjelaskan
            maksud programmer.

            Symbol adalah label untuk programmer bisa pakai untuk internally
            describe things. Sedangkan string adalah sebuah tempat untuk menampung
            susunan karakter.

            hash[:key] vs. hash['key']

            Di kasus yang pertama, dengan menggunakan symbol, programmernya
            bermaksud: ini cuman label doang, untuk digunakan di dalem kode ini,
            tidak dimaksudkan untuk di output ke user. Sedangkan kalau
            hash['key'], tidak begitu jelas apakah 'key' itu bakalannya untuk di
            output ke user atau ada maksud lainnya selain jadi label.

            Mungkin orang yang datang bukan dari lisp tidak melihat/merasakan
            perbedaan yang tipis ini, tapi itulah tujuan original symbol.

            YS.
          • Edwin Pratomo
            ... heh selama ini saya kira penggunaan symbol adalah utk menghindari string abuse :-) ... kalo jawaban saya adalah ketika tidak perlu memakai string.
            Message 5 of 5 , Nov 9, 2005
            • 0 Attachment
              --- Steven Haryanto <steven@...> wrote:

              > Ronny Haryanto wrote:
              > > Hi *,
              > >
              > > Symbols yg ada di ruby yg diawali tanda colon, seperti :something, itu
              > > padanannya di perl atau language lain apa ya? Atau gak ada?
              >
              > gak ada. symbol ini ada terutama untuk performance reason aja. kalo kita

              heh selama ini saya kira penggunaan symbol adalah utk menghindari "string
              abuse" :-)

              >
              > > Jadi kapan mesti pake symbols?

              kalo jawaban saya adalah ketika tidak perlu memakai string.
              cenderung ke clarity / style reason.

              rgds,
              Edwin.





              __________________________________
              Yahoo! FareChase: Search multiple travel sites in one click.
              http://farechase.yahoo.com
            Your message has been successfully submitted and would be delivered to recipients shortly.