mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 10:01:38 +00:00
Merge pull request #3634 from uvtc/patch-1
[Haxe/en] general-purpose, not specifically web-oriented
This commit is contained in:
commit
198be4d91f
@ -6,8 +6,8 @@ contributors:
|
|||||||
- ["Dan Korostelev", "https://github.com/nadako/"]
|
- ["Dan Korostelev", "https://github.com/nadako/"]
|
||||||
---
|
---
|
||||||
|
|
||||||
Haxe is a web-oriented language that provides platform support for C++, C#,
|
[Haxe](https://haxe.org/) is a general-purpose language that provides platform support for C++, C#,
|
||||||
Swf/ActionScript, Javascript, Java, PHP, Python, Lua, HashLink, and Neko byte code
|
Swf/ActionScript, JavaScript, Java, PHP, Python, Lua, HashLink, and Neko bytecode
|
||||||
(the latter two being also written by the Haxe author). Note that this guide is for
|
(the latter two being also written by the Haxe author). Note that this guide is for
|
||||||
Haxe version 3. Some of the guide may be applicable to older versions, but it is
|
Haxe version 3. Some of the guide may be applicable to older versions, but it is
|
||||||
recommended to use other references.
|
recommended to use other references.
|
||||||
@ -189,7 +189,7 @@ class LearnHaxe3 {
|
|||||||
trace(m.get('bar') + " is the value for m.get('bar')");
|
trace(m.get('bar') + " is the value for m.get('bar')");
|
||||||
trace(m['bar'] + " is the value for m['bar']");
|
trace(m['bar'] + " is the value for m['bar']");
|
||||||
|
|
||||||
var m2 = ['foo' => 4, 'baz' => 6]; // Alternative map syntax
|
var m2 = ['foo' => 4, 'baz' => 6]; // Alternative map syntax
|
||||||
trace(m2 + " is the value for m2");
|
trace(m2 + " is the value for m2");
|
||||||
|
|
||||||
// Remember, you can use type inference. The Haxe compiler will
|
// Remember, you can use type inference. The Haxe compiler will
|
||||||
@ -234,10 +234,9 @@ class LearnHaxe3 {
|
|||||||
^ Bitwise exclusive OR
|
^ Bitwise exclusive OR
|
||||||
| Bitwise inclusive OR
|
| Bitwise inclusive OR
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// increments
|
|
||||||
var i = 0;
|
var i = 0;
|
||||||
trace("Increments and decrements");
|
trace("Pre-/Post- Increments and Decrements");
|
||||||
trace(i++); // i = 1. Post-Increment
|
trace(i++); // i = 1. Post-Increment
|
||||||
trace(++i); // i = 2. Pre-Increment
|
trace(++i); // i = 2. Pre-Increment
|
||||||
trace(i--); // i = 1. Post-Decrement
|
trace(i--); // i = 1. Post-Decrement
|
||||||
@ -287,7 +286,7 @@ class LearnHaxe3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// do-while loop
|
// do-while loop
|
||||||
var l = 0;
|
var l = 0;
|
||||||
do {
|
do {
|
||||||
trace("do statement always runs at least once");
|
trace("do statement always runs at least once");
|
||||||
} while (l > 0);
|
} while (l > 0);
|
||||||
@ -338,7 +337,7 @@ class LearnHaxe3 {
|
|||||||
*/
|
*/
|
||||||
var my_dog_name = "fido";
|
var my_dog_name = "fido";
|
||||||
var favorite_thing = "";
|
var favorite_thing = "";
|
||||||
switch(my_dog_name) {
|
switch (my_dog_name) {
|
||||||
case "fido" : favorite_thing = "bone";
|
case "fido" : favorite_thing = "bone";
|
||||||
case "rex" : favorite_thing = "shoe";
|
case "rex" : favorite_thing = "shoe";
|
||||||
case "spot" : favorite_thing = "tennis ball";
|
case "spot" : favorite_thing = "tennis ball";
|
||||||
@ -366,7 +365,7 @@ class LearnHaxe3 {
|
|||||||
|
|
||||||
trace("k equals ", k); // outputs 10
|
trace("k equals ", k); // outputs 10
|
||||||
|
|
||||||
var other_favorite_thing = switch(my_dog_name) {
|
var other_favorite_thing = switch (my_dog_name) {
|
||||||
case "fido" : "teddy";
|
case "fido" : "teddy";
|
||||||
case "rex" : "stick";
|
case "rex" : "stick";
|
||||||
case "spot" : "football";
|
case "spot" : "football";
|
||||||
@ -559,7 +558,7 @@ class SimpleEnumTest {
|
|||||||
// You can specify the "full" name,
|
// You can specify the "full" name,
|
||||||
var e_explicit:SimpleEnum = SimpleEnum.Foo;
|
var e_explicit:SimpleEnum = SimpleEnum.Foo;
|
||||||
var e = Foo; // but inference will work as well.
|
var e = Foo; // but inference will work as well.
|
||||||
switch(e) {
|
switch (e) {
|
||||||
case Foo: trace("e was Foo");
|
case Foo: trace("e was Foo");
|
||||||
case Bar: trace("e was Bar");
|
case Bar: trace("e was Bar");
|
||||||
case Baz: trace("e was Baz"); // comment this line to throw an error.
|
case Baz: trace("e was Baz"); // comment this line to throw an error.
|
||||||
@ -572,7 +571,7 @@ class SimpleEnumTest {
|
|||||||
|
|
||||||
You can also specify a default for enum switches as well:
|
You can also specify a default for enum switches as well:
|
||||||
*/
|
*/
|
||||||
switch(e) {
|
switch (e) {
|
||||||
case Foo: trace("e was Foo again");
|
case Foo: trace("e was Foo again");
|
||||||
default : trace("default works here too");
|
default : trace("default works here too");
|
||||||
}
|
}
|
||||||
@ -595,21 +594,21 @@ class ComplexEnumTest {
|
|||||||
var e1:ComplexEnum = IntEnum(4); // specifying the enum parameter
|
var e1:ComplexEnum = IntEnum(4); // specifying the enum parameter
|
||||||
// Now we can switch on the enum, as well as extract any parameters
|
// Now we can switch on the enum, as well as extract any parameters
|
||||||
// it might have had.
|
// it might have had.
|
||||||
switch(e1) {
|
switch (e1) {
|
||||||
case IntEnum(x) : trace('$x was the parameter passed to e1');
|
case IntEnum(x) : trace('$x was the parameter passed to e1');
|
||||||
default: trace("Shouldn't be printed");
|
default: trace("Shouldn't be printed");
|
||||||
}
|
}
|
||||||
|
|
||||||
// another parameter here that is itself an enum... an enum enum?
|
// another parameter here that is itself an enum... an enum enum?
|
||||||
var e2 = SimpleEnumEnum(Foo);
|
var e2 = SimpleEnumEnum(Foo);
|
||||||
switch(e2){
|
switch (e2){
|
||||||
case SimpleEnumEnum(s): trace('$s was the parameter passed to e2');
|
case SimpleEnumEnum(s): trace('$s was the parameter passed to e2');
|
||||||
default: trace("Shouldn't be printed");
|
default: trace("Shouldn't be printed");
|
||||||
}
|
}
|
||||||
|
|
||||||
// enums all the way down
|
// enums all the way down
|
||||||
var e3 = ComplexEnumEnum(ComplexEnumEnum(MultiEnum(4, 'hi', 4.3)));
|
var e3 = ComplexEnumEnum(ComplexEnumEnum(MultiEnum(4, 'hi', 4.3)));
|
||||||
switch(e3) {
|
switch (e3) {
|
||||||
// You can look for certain nested enums by specifying them
|
// You can look for certain nested enums by specifying them
|
||||||
// explicitly:
|
// explicitly:
|
||||||
case ComplexEnumEnum(ComplexEnumEnum(MultiEnum(i,j,k))) : {
|
case ComplexEnumEnum(ComplexEnumEnum(MultiEnum(i,j,k))) : {
|
||||||
@ -668,7 +667,7 @@ class TypedefsAndStructuralTypes {
|
|||||||
|
|
||||||
That would give us a single "Surface" type to work with across
|
That would give us a single "Surface" type to work with across
|
||||||
all of those platforms.
|
all of those platforms.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -700,8 +699,7 @@ class UsingExample {
|
|||||||
instance, and the compiler still generates code equivalent to a
|
instance, and the compiler still generates code equivalent to a
|
||||||
static method.
|
static method.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user