Difference between revisions of "With/fi"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed page template name)
 
Line 1: Line 1:
 
{{with}}
 
{{with}}
  
[[Reserved word/fi|Varattu sana]] <syntaxhighlight lang="pascal" enclose="none">with</syntaxhighlight>  
+
[[Reserved word/fi|Varattu sana]] <syntaxhighlight lang="pascal" inline>with</syntaxhighlight>  
 
sallii nimettyjen laajuuksien laajuuden hakureitityksen ohittamisen yhden [[statement/fi|lausekkeen]] ajaksi.
 
sallii nimettyjen laajuuksien laajuuden hakureitityksen ohittamisen yhden [[statement/fi|lausekkeen]] ajaksi.
  
Line 11: Line 11:
 
# sulkevan lohkon ympäröivä lohko, jos sellainen on
 
# sulkevan lohkon ympäröivä lohko, jos sellainen on
 
# … (ja niin edelleen)
 
# … (ja niin edelleen)
# viimeksi tuotu moduuli, se tarkoittaa esimerkiksi [[Unit/fi|käännösyksikköä (unit), joka ilmestyy [[Uses/fi|<syntaxhighlight lang="pascal" enclose="none">uses</syntaxhighlight>-lausekkeen]] luettelon lopussa, jos sellainen on
+
# viimeksi tuotu moduuli, se tarkoittaa esimerkiksi [[Unit/fi|käännösyksikköä (unit), joka ilmestyy [[Uses/fi|<syntaxhighlight lang="pascal" inline>uses</syntaxhighlight>-lausekkeen]] luettelon lopussa, jos sellainen on
 
# viimeinen moduuli, joka on tuotu, jos sellainen on
 
# viimeinen moduuli, joka on tuotu, jos sellainen on
 
# … (ja niin edelleen)
 
# … (ja niin edelleen)
# ensimmäinen tuotu moduuli, se tarkoittaa esimerkiksi ensimmäistä käännösyksikköä, joka esiintyy <syntaxhighlight lang="pascal" enclose="none">uses</syntaxhighlight>-lausekkeessa, jos sellainen on
+
# ensimmäinen tuotu moduuli, se tarkoittaa esimerkiksi ensimmäistä käännösyksikköä, joka esiintyy <syntaxhighlight lang="pascal" inline>uses</syntaxhighlight>-lausekkeessa, jos sellainen on
 
# [[System unit|system unit]] (ellei implisiittinen sisällyttäminen ole poistettu käytöstä)
 
# [[System unit|system unit]] (ellei implisiittinen sisällyttäminen ole poistettu käytöstä)
  
 
== Ohittaminen ==
 
== Ohittaminen ==
Haku voidaan ohittaa väliaikaisesti <syntaxhighlight lang="pascal" enclose="none">with</syntaxhighlight>-lauseella.
+
Haku voidaan ohittaa väliaikaisesti <syntaxhighlight lang="pascal" inline>with</syntaxhighlight>-lauseella.
 
Se näyttää tältä:
 
Se näyttää tältä:
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 26: Line 26:
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
Tämä asettaa <syntaxhighlight lang="pascal" enclose="none">namedScope</syntaxhighlight> reitityksen huipulle.
+
Tämä asettaa <syntaxhighlight lang="pascal" inline>namedScope</syntaxhighlight> reitityksen huipulle.
Tunnisteita etsitään ensin <syntaxhighlight lang="pascal" enclose="none">namedScope</syntaxhighlight> alta, ennen kuin muut laajuudet otetaan huomioon.
+
Tunnisteita etsitään ensin <syntaxhighlight lang="pascal" inline>namedScope</syntaxhighlight> alta, ennen kuin muut laajuudet otetaan huomioon.
  
<syntaxhighlight lang="pascal" enclose="none">namedScope</syntaxhighlight> voi olla
+
<syntaxhighlight lang="pascal" inline>namedScope</syntaxhighlight> voi olla
* [[Unit/fi|Käännösyksikön (<syntaxhighlight lang="pascal" enclose="none">unit</syntaxhighlight>)]] nimi
+
* [[Unit/fi|Käännösyksikön (<syntaxhighlight lang="pascal" inline>unit</syntaxhighlight>)]] nimi
joka on aiemmin tuotu [[Uses/fi|<syntaxhighlight lang="pascal" enclose="none">uses</syntaxhighlight>lausekkeen kautta nykyiseen osioon.
+
joka on aiemmin tuotu [[Uses/fi|<syntaxhighlight lang="pascal" inline>uses</syntaxhighlight>lausekkeen kautta nykyiseen osioon.
 
* strukturoidun muuttujan nimi, jolla olisi voinut nimetä sen jäseniä, ts
 
* strukturoidun muuttujan nimi, jolla olisi voinut nimetä sen jäseniä, ts
** [[Record/fi|<syntaxhighlight lang="pascal" enclose="none">record</syntaxhighlight>]]
+
** [[Record/fi|<syntaxhighlight lang="pascal" inline>record</syntaxhighlight>]]
** [[Object/fi|<syntaxhighlight lang="pascal" enclose="none">object</syntaxhighlight>]] tai
+
** [[Object/fi|<syntaxhighlight lang="pascal" inline>object</syntaxhighlight>]] tai
** [[Class/fi|<syntaxhighlight lang="pascal" enclose="none">class</syntaxhighlight>]].
+
** [[Class/fi|<syntaxhighlight lang="pascal" inline>class</syntaxhighlight>]].
  
Jos useiden <syntaxhighlight lang="pascal" enclose="none">with</syntaxhighlight>-lausekkeiden pitäisi olla sisäkkäisiä, on tarjolla lyhyempi merkintä:
+
Jos useiden <syntaxhighlight lang="pascal" inline>with</syntaxhighlight>-lausekkeiden pitäisi olla sisäkkäisiä, on tarjolla lyhyempi merkintä:
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
 
with snakeOil, sharpTools do
 
with snakeOil, sharpTools do
Line 53: Line 53:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Huomaa, että [[Begin/fi|<syntaxhighlight lang="pascal" enclose="none">begin</syntaxhighlight>]]-[[End/fi|<syntaxhighlight lang="pascal" enclose="none">end</syntaxhighlight>]] eivät ole osa syntaksia,
+
Huomaa, että [[Begin/fi|<syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>]]-[[End/fi|<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>]] eivät ole osa syntaksia,
mutta <syntaxhighlight lang="pascal" enclose="none">with</syntaxhighlight> … [[Do/fi|<syntaxhighlight lang="pascal" enclose="none">do</syntaxhighlight>]]  
+
mutta <syntaxhighlight lang="pascal" inline>with</syntaxhighlight> … [[Do/fi|<syntaxhighlight lang="pascal" inline>do</syntaxhighlight>]]  
 
täytyy seurata tarkalleen vain yksi lause. Käytännössä tämä on kuitenkin aina yhdistelmälause.
 
täytyy seurata tarkalleen vain yksi lause. Käytännössä tämä on kuitenkin aina yhdistelmälause.
  
 
== Katso myös ==
 
== Katso myös ==
 
* [[Namespaces|namespaces]]
 
* [[Namespaces|namespaces]]

Latest revision as of 17:22, 6 August 2022

Deutsch (de) English (en) suomi (fi) русский (ru)

Varattu sana with sallii nimettyjen laajuuksien laajuuden hakureitityksen ohittamisen yhden lausekkeen ajaksi.


Reititys

Tunnisteita etsitään seuraavassa järjestyksessä, kunnes saadaan osuma

  1. nykyinen lohko
  2. suljettu lohko, jos sellainen on
  3. sulkevan lohkon ympäröivä lohko, jos sellainen on
  4. … (ja niin edelleen)
  5. viimeksi tuotu moduuli, se tarkoittaa esimerkiksi [[Unit/fi|käännösyksikköä (unit), joka ilmestyy uses-lausekkeen luettelon lopussa, jos sellainen on
  6. viimeinen moduuli, joka on tuotu, jos sellainen on
  7. … (ja niin edelleen)
  8. ensimmäinen tuotu moduuli, se tarkoittaa esimerkiksi ensimmäistä käännösyksikköä, joka esiintyy uses-lausekkeessa, jos sellainen on
  9. system unit (ellei implisiittinen sisällyttäminen ole poistettu käytöstä)

Ohittaminen

Haku voidaan ohittaa väliaikaisesti with-lauseella. Se näyttää tältä:

	with namedScope do
	begin
		
	end;

Tämä asettaa namedScope reitityksen huipulle. Tunnisteita etsitään ensin namedScope alta, ennen kuin muut laajuudet otetaan huomioon.

namedScope voi olla

joka on aiemmin tuotu [[Uses/fi|useslausekkeen kautta nykyiseen osioon.

  • strukturoidun muuttujan nimi, jolla olisi voinut nimetä sen jäseniä, ts

Jos useiden with-lausekkeiden pitäisi olla sisäkkäisiä, on tarjolla lyhyempi merkintä:

	with snakeOil, sharpTools do
	begin
		
	end;

which is equivalent to:

	with snakeOil do
	begin
		with sharpTools do
		begin
			
		end;
	end;

Huomaa, että begin-end eivät ole osa syntaksia, mutta withdo täytyy seurata tarkalleen vain yksi lause. Käytännössä tämä on kuitenkin aina yhdistelmälause.

Katso myös