Is “*” the same as “*” in scala?
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol *
confused me. It seems that this *
works like multiply, i.e. *
, but why there is a ahead of
*
? Is *
the same as *
?
scala
|
show 3 more comments
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol *
confused me. It seems that this *
works like multiply, i.e. *
, but why there is a ahead of
*
? Is *
the same as *
?
scala
3
I don't think*
is even valid syntax? unless it is defined as a custom method likedef *(x: Int) = x * x
can you please post where did you see that?
– prayagupd
Nov 11 at 5:36
1
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
@prayagupd: "I don't think*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just likefoo
orbar
or???
or*
. "unless it is defined as a custom method likedef *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.
– Jörg W Mittag
Nov 11 at 9:36
@RamanMishra: It is valid syntax. It is a valid method name just likefoo
orbar
or???
or*
.
– Jörg W Mittag
Nov 11 at 9:37
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11
|
show 3 more comments
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol *
confused me. It seems that this *
works like multiply, i.e. *
, but why there is a ahead of
*
? Is *
the same as *
?
scala
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol *
confused me. It seems that this *
works like multiply, i.e. *
, but why there is a ahead of
*
? Is *
the same as *
?
scala
scala
edited Nov 11 at 6:42
jwvh
25.3k52038
25.3k52038
asked Nov 11 at 5:31
Yong Chen
111
111
3
I don't think*
is even valid syntax? unless it is defined as a custom method likedef *(x: Int) = x * x
can you please post where did you see that?
– prayagupd
Nov 11 at 5:36
1
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
@prayagupd: "I don't think*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just likefoo
orbar
or???
or*
. "unless it is defined as a custom method likedef *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.
– Jörg W Mittag
Nov 11 at 9:36
@RamanMishra: It is valid syntax. It is a valid method name just likefoo
orbar
or???
or*
.
– Jörg W Mittag
Nov 11 at 9:37
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11
|
show 3 more comments
3
I don't think*
is even valid syntax? unless it is defined as a custom method likedef *(x: Int) = x * x
can you please post where did you see that?
– prayagupd
Nov 11 at 5:36
1
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
@prayagupd: "I don't think*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just likefoo
orbar
or???
or*
. "unless it is defined as a custom method likedef *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.
– Jörg W Mittag
Nov 11 at 9:36
@RamanMishra: It is valid syntax. It is a valid method name just likefoo
orbar
or???
or*
.
– Jörg W Mittag
Nov 11 at 9:37
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11
3
3
I don't think
*
is even valid syntax? unless it is defined as a custom method like def *(x: Int) = x * x
can you please post where did you see that?– prayagupd
Nov 11 at 5:36
I don't think
*
is even valid syntax? unless it is defined as a custom method like def *(x: Int) = x * x
can you please post where did you see that?– prayagupd
Nov 11 at 5:36
1
1
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
@prayagupd: "I don't think
*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just like foo
or bar
or ???
or *
. "unless it is defined as a custom method like def *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.– Jörg W Mittag
Nov 11 at 9:36
@prayagupd: "I don't think
*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just like foo
or bar
or ???
or *
. "unless it is defined as a custom method like def *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.– Jörg W Mittag
Nov 11 at 9:36
@RamanMishra: It is valid syntax. It is a valid method name just like
foo
or bar
or ???
or *
.– Jörg W Mittag
Nov 11 at 9:37
@RamanMishra: It is valid syntax. It is a valid method name just like
foo
or bar
or ???
or *
.– Jörg W Mittag
Nov 11 at 9:37
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11
|
show 3 more comments
2 Answers
2
active
oldest
votes
It doesn't exist in vanilla Scala. It would be possible to define *
as a method in an implicit class:
implicit class IntOps(x: Int)
def *(y: Int) = x * y
Which can be used in the same way as you're seeing: 6 * 7
But to use this new method *
in your code, the implicit class must be in scope or imported.
However, I suspect that none of the above is applicable here. It could be the case that there's just an error in displaying the code which instead should read:
def poly(x: Int): Int = x*x - 2*x +1
add a comment |
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol
*
confused me. It seems that this*
works like multiply, i.e.*
, but why there is aahead of
*
?
That is simply the name of the method. *
is just as valid as a method name as *
or foo
or bar
or ???
. It's just a method like any other method.
Is
*
the same as*
?
No, *
is *
and *
is *
. They are different methods, just like foo
and bar
are different methods.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53246110%2fis-the-same-as-in-scala%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
It doesn't exist in vanilla Scala. It would be possible to define *
as a method in an implicit class:
implicit class IntOps(x: Int)
def *(y: Int) = x * y
Which can be used in the same way as you're seeing: 6 * 7
But to use this new method *
in your code, the implicit class must be in scope or imported.
However, I suspect that none of the above is applicable here. It could be the case that there's just an error in displaying the code which instead should read:
def poly(x: Int): Int = x*x - 2*x +1
add a comment |
It doesn't exist in vanilla Scala. It would be possible to define *
as a method in an implicit class:
implicit class IntOps(x: Int)
def *(y: Int) = x * y
Which can be used in the same way as you're seeing: 6 * 7
But to use this new method *
in your code, the implicit class must be in scope or imported.
However, I suspect that none of the above is applicable here. It could be the case that there's just an error in displaying the code which instead should read:
def poly(x: Int): Int = x*x - 2*x +1
add a comment |
It doesn't exist in vanilla Scala. It would be possible to define *
as a method in an implicit class:
implicit class IntOps(x: Int)
def *(y: Int) = x * y
Which can be used in the same way as you're seeing: 6 * 7
But to use this new method *
in your code, the implicit class must be in scope or imported.
However, I suspect that none of the above is applicable here. It could be the case that there's just an error in displaying the code which instead should read:
def poly(x: Int): Int = x*x - 2*x +1
It doesn't exist in vanilla Scala. It would be possible to define *
as a method in an implicit class:
implicit class IntOps(x: Int)
def *(y: Int) = x * y
Which can be used in the same way as you're seeing: 6 * 7
But to use this new method *
in your code, the implicit class must be in scope or imported.
However, I suspect that none of the above is applicable here. It could be the case that there's just an error in displaying the code which instead should read:
def poly(x: Int): Int = x*x - 2*x +1
answered Nov 11 at 23:18
Tom
1,6892924
1,6892924
add a comment |
add a comment |
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol
*
confused me. It seems that this*
works like multiply, i.e.*
, but why there is aahead of
*
?
That is simply the name of the method. *
is just as valid as a method name as *
or foo
or bar
or ???
. It's just a method like any other method.
Is
*
the same as*
?
No, *
is *
and *
is *
. They are different methods, just like foo
and bar
are different methods.
add a comment |
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol
*
confused me. It seems that this*
works like multiply, i.e.*
, but why there is aahead of
*
?
That is simply the name of the method. *
is just as valid as a method name as *
or foo
or bar
or ???
. It's just a method like any other method.
Is
*
the same as*
?
No, *
is *
and *
is *
. They are different methods, just like foo
and bar
are different methods.
add a comment |
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol
*
confused me. It seems that this*
works like multiply, i.e.*
, but why there is aahead of
*
?
That is simply the name of the method. *
is just as valid as a method name as *
or foo
or bar
or ???
. It's just a method like any other method.
Is
*
the same as*
?
No, *
is *
and *
is *
. They are different methods, just like foo
and bar
are different methods.
I see a piece of code as
def poly(x: Int): Int = x*x - 2*x +1
the symbol
*
confused me. It seems that this*
works like multiply, i.e.*
, but why there is aahead of
*
?
That is simply the name of the method. *
is just as valid as a method name as *
or foo
or bar
or ???
. It's just a method like any other method.
Is
*
the same as*
?
No, *
is *
and *
is *
. They are different methods, just like foo
and bar
are different methods.
answered Nov 11 at 9:39
Jörg W Mittag
288k62353546
288k62353546
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53246110%2fis-the-same-as-in-scala%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
I don't think
*
is even valid syntax? unless it is defined as a custom method likedef *(x: Int) = x * x
can you please post where did you see that?– prayagupd
Nov 11 at 5:36
1
it's not the valid syntax can you please tell me where have you seen such code?
– Raman Mishra
Nov 11 at 5:37
@prayagupd: "I don't think
*
is even valid syntax?" – Yes, it is valid syntax. It is a valid identifier, just likefoo
orbar
or???
or*
. "unless it is defined as a custom method likedef *(x: Int) = x * x
" – This makes no sense. If it isn't valid syntax (like you claim), then you couldn't define a method with that name. If you could define a method with that name, then it obviously must be valid syntax. It cannot be both invalid syntax and a valid method name, that statement is contradictory.– Jörg W Mittag
Nov 11 at 9:36
@RamanMishra: It is valid syntax. It is a valid method name just like
foo
orbar
or???
or*
.– Jörg W Mittag
Nov 11 at 9:37
@JörgWMittag yes i agree its a valid method name if defined and in the question i don't see any user defined method name /*.
– Raman Mishra
Nov 11 at 10:11