I would use a regular function like inc_count(item::Item, n)
but you can get the interface you asked for with an extra type definition: import Base.+, Base.convert type Counter n end convert(::Type{Counter}, n::Int) = Counter(n) function +(c::Counter, m) println("Item value +$(m)") c.n + m end type Item id::Int32 count::Counter end a = Item(1, 1) a.count += 10 a.count += 20 a.count You could store the name of the item in the Counter, too. It's just not very idiomatic, but it depends what you want to do... On Wednesday, May 4, 2016 at 5:11:32 AM UTC-4, Kristoffer Carlsson wrote: > > I believe you would need field access overloading for this to work > cleanly: https://github.com/JuliaLang/julia/issues/1974 > > On Wednesday, May 4, 2016 at 11:03:18 AM UTC+2, Yonghee Kim wrote: >> >> I'd like write a simple log when type field value has changed >> >> something like this >> type Item >> id::Int32 >> count::UInt32 >> >> # function for writing a log >> end >> >> >> then when I do this... >> * a = Item(1, 1) * >> * a.count += 10 * >> >> write a message like this at console >> * Item "a.count" value +10 * >> >> >> Is it possible? or should I make macro to do this. >> >