Hi, On Fri, Aug 25, 2023 at 2:07 PM bfrg <[email protected]> wrote: > > If "public" is omitted, shouldn't class members and method be private by > default just like "def" functions > and script variables are script-local by default unless prefixed with > "export"? >
Currently object/class methods are always public and the object/class private methods are not supported. If "public" is omitted, then object/class member variables are read-only. With "public", the member variables are read/write. If the member variable name starts with an underscore, then it is private. > > In general, I would also like it to be symmetric. So, either introducing > "public" and "private" together, > or no modifier keyword at all. In the latter case an underscore indicates > private class members and > methods whereas public ones don't have an underscore. > I prefer using the underscore character to differentiate between public and private methods. I will create a PR to add support for private object/class methods. > > And another issue: why isn't this thread shown in GitHub Discussions? Wasn't > the whole point of enabling > Discussions so that more people can participate in such decision making? > I am used to sending emails to the mailing list. So I started this email thread. We can use Github discussions going forward for other features. Regards, Yegappan > On Friday, August 25, 2023 at 6:11:34 AM UTC+2 Doug Kearns wrote: >> >> On Fri, 25 Aug 2023 at 13:18, Yegappan Lakshmanan <[email protected]> wrote: >>> >>> Hi all, >>> >>> The following item is in the todo.txt file for implementing private >>> methods in a class: >>> >>> - Private methods? >>> either: private def Func() >>> or: def _Func() >>> Perhaps use "private" keyword instead of "_" prefix? >>> >>> Function and method names always start with an uppercase letter. So >>> if we use the >>> "_" prefix for a private method name then it will diverge from that. So I >>> have >>> implemented this using the "private" keyword. >>> >>> Any opinions? >> >> >> Thanks very much for keeping the ball rolling on this. >> >> For others, there was some previous discussion[1] about it on the list when >> Bram asked for opinions. My recollection is that both you and he were in >> favour of the "_" prefix for call-site identification purposes? >> >> My personal preference would be for the modifier keyword with a symmetric, >> even if possibly redundant, "public". I think this is justifiable on the >> grounds of it meeting the "less weird" requirement for Vim9 script. While >> I'm sure there are others, JavaScript is the only language I can think of >> off the top of my head that defaults to public and uses a sigil for private >> access. >> >> Thanks again, >> Doug >> >> 1. https://groups.google.com/g/vim_dev/c/yYpFNUHdRho/m/xjgrKqMoBQAJ?pli=1 >> >> -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/CAAW7x7nZEFFvkJNyGt4-8uRaKUaGYug5Fv5i515gAWYzt_4RqA%40mail.gmail.com.
